[Freeswitch-users] Limit on b-leg

Артур Краев ravenox at gmail.com
Wed Jan 28 01:40:52 MSK 2015


Hello everyone!

Could you help please how-to realize limits on b-leg?
I already saw a wiki page, and way to outbound limit on gateways but,
there's some problems to use this solution in my cases.

Case 1:
[provider sip] -> [fs] -> [user 1]

In this case, I'm need to set call limit for user 1 (it can handle no more
than concurrent 1 call, connected device is not managed by me) .
If I will set it on a-leg in dialplan, the limit will bound to a-leg's UUID
and stay here even if b-leg (which is user 1) will be destroyed, for
example if user 1 transferred (of att-xferred) call to another user.

Case 2:
[provider sip] -> [fs] -> [user 1], [user 2], [user 3] (enterprise dial)

In this case, I'm need to set own call limit for each user's channel, only
for matching b-leg, not for all.

This cases, may be realized with loopback channel (which is not elegant,
because produces addition problems with cdrs...) but, what will be if one
of this users is fax, and we're need to make T.38 pass-trough between a-leg
and b-leg?
At this moment there's no way to pass-trough t.38 with loopback channels.

Ok, after all of this, I'm tried to some sort of googling and found this
issue in FS Jira:
https://freeswitch.org/jira/si/jira.issueviews:issue-html/FS-1792/FS-1792.html
I was tried to use uuid_limit for setting limit on b-leg, but:
- I cannot use uuid-limit on a-leg because, there's no uuid for b-leg
before bridge called. I can generate uuid by api function, and set for
b-leg as channel variable in bridge, but now I also cannot run uuid_limit
on b-leg because there's no b-leg channel before bridge called.
- If I'm write a script which handles channel init event, checking some
variable, and after this, executes uuid_limit on it, there's some other
problem - events working in async way, so user's phone will ring before
uuid_limit action will be executed (after that user will have +1 missed
call, which is not must be here).

So the last way to implement this cases is to write module for FS (C or
.Net) which will handle execute_on_init, variable, and executes action when
channel initializing.

But, maybe there any other way to implement this functionality.
Or may be execute_on_init shall be added to FS core?

-- 
With best regards,
Arthur Kraev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20150128/997c37e7/attachment.html 


Join us at ClueCon 2016 Aug 8-12, 2016
More information about the FreeSWITCH-users mailing list