]> git.ipfire.org Git - thirdparty/freeswitch.git/commit
ftmod_libpri: Implement channel hunting in NT-mode.
authorStefan Knoblich <stkn@openisdn.net>
Thu, 23 Aug 2012 22:15:35 +0000 (00:15 +0200)
committerStefan Knoblich <stkn@openisdn.net>
Thu, 23 Aug 2012 22:36:34 +0000 (00:36 +0200)
commita4216351c0299765e0330415f03bd5bfabcac9f9
tree6a6b45eb3a7f4bef5871495d381b13366553fd27
parent4efff5c46367a89c666ad1d44db4e417e4a87b27
ftmod_libpri: Implement channel hunting in NT-mode.

Hunt for a free channel for incoming calls that do not
preselect a channel (pevent->ring.channel == -1).

Verify the preselected channel for calls that do specify a channel
and in case the channel is already taken, hunt for a free one,
or abort with an error message (if the preselection was exclusive).

TE-mode channel selection is the same as before
(there's still room for improvement, though, but i'll save that for later).

The MSN/DDI filter code is moved into the TE-mode section (only useful there).

The duplicate ring detection had to be reworked. We now store the
call reference (CRV) in caller_data->call_reference of the selected channel
and do a CRV -> channel look up with find_channel_by_cref()
at the top of on_ring().

NOTE: This is only lightly tested (NT/TE mode), i'd either have to
      write a lot of custom code to check it toroughly or the need for
      a scriptable ISDN stack...

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
libs/freetdm/src/ftmod/ftmod_libpri/ftmod_libpri.c