Remove required type field from channel blobs
authorDavid M. Lee <dlee@digium.com>
Wed, 8 May 2013 18:34:50 +0000 (18:34 +0000)
committerDavid M. Lee <dlee@digium.com>
Wed, 8 May 2013 18:34:50 +0000 (18:34 +0000)
commit0eb4cf8c194d05214677459feb389f63f60c68af
tree86f355afb7bda15fe320192ce9daecffa71bfba2
parent297feffd4ed67a5b72eb28de0f6c7edcd0edb40d
Remove required type field from channel blobs

When we first introduced the channel blob types, the JSON blobs were
self identifying by a required "type" field in the JSON object
itself. This, as it turns out, was a bad idea.

When we introduced the message router, it was useless for routing based
on the JSON type. And messages had two type fields to check: the
stasis_message_type() of the message itself, plus the type field in the
JSON blob (but only if it was a blob message).

This patch corrects that mistake by removing the required type field
from JSON blobs, and introducing first class stasis_message_type objects
for the actual message type.

Since we now will have a proliferation of message types, I introduced a
few macros to help reduce the amount of boilerplate necessary to set
them up.

Review: https://reviewboard.asterisk.org/r/2509

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@388005 65c4cc65-6c06-0410-ace0-fbb531ad65f3
apps/app_userevent.c
include/asterisk/stasis.h
include/asterisk/stasis_channels.h
main/channel.c
main/manager_channels.c
main/stasis_channels.c
res/res_stasis.c
tests/test_stasis_channels.c