Pete,
Thank you for script. I can not find find channel variables rdnis, sip_to_user and all others which start with "sb" on wiki page
http://wiki.freeswitch.org/wiki/Channel_Variables
Are they undocumented?
-Vladimir Rodionov
Disclaimer: I'm not familiar with all the mods of FS, There may be one that does this already. There are probably many ways to do this, I am just offering one that works well for me.
Item #1 - Findout the callee #. "destination_number" can be set to several different things based on the gateway configuration (forced override with an extension) and may or may not start with a "+" so the example below may not work. To make matters worse, different gateways set fields differently when they hand off the call. The most reliable I've found is "rdnis" or "sip_to_user" , however if you know you are going to stay with one gateway, you can relay on the oddities of the way they are configured. I had to write something relatively generic, so I moved all processing to a script (see #3 below)
Item #2 - Find the caller ID. This is located in "caller_id_number", but remember in your processing that caller ID may be "anonymous", "restricted", "unknown" or some other word when dealing with blocked/private numbers. You cannot looks for just numbers.
Item #3 - Routing. As I mentioned I have 100s of numbers across many gateways, so I needed a way to route the calls to the right places AND know which gateway the call came in on, so I can bridge the call out the same gateway. I handled this by creating a small DB table (using postgreSQL) and connecting using LUA and luasql. The table has three fields: number, gateway, and extension to route to. In my public.xml I list all the places a call can be routed to and the last entry is a unconditional transfer to the "switchboard" script. The switchboard script matches "rdnis" and "sip_to_user" to find the callee and then performs a lookup for the extension to route to.
If you would like a copy of my switchboard script I can provide it to you in a PM.
-pete
-------- Original Message --------
Subject: Re: [Freeswitch-users] Multiple DIDs per SIP trunk (how to
configure?)
From: Vladimir Rodionov <vladrodionov@gmail.com>
Date: Wed, August 05, 2009 6:57 pm
To: freeswitch-users@lists.freeswitch.org
No, it is more like static routing. I need my script program be invoked when somebody dial in. That is it. One script for all inbound DIDs. Suppose I have thousand of them. I think I know how to accomplish this but I am not sure yet.
in my dialplan I need to define:
<!-- Launch a JavaScript application if dialed in-->
<extension name="ProviderABC">
<condition field="source" expression="mod_sofia"/>
<condition field="destination_number" expression="^1NXXNXXXXXX$">
<action application="javascript" data="/usr/local/freeswitch/scripts/myapp.js"/>
</condition>
</extension>
In provider configuration:
<gateway name="voicepulse">
<!--/// account username *required* ///-->
<param name="username" value="your-username"/>
<!--/// auth realm: *optional* same as gateway name, if blank ///-->
<param name="realm" value="nyc.voicepulse.com"/>
<!--/// account password *required* ///-->
<param name="password" value="your-password"/>
<!--/// extension for inbound calls: *optional* same as username, if blank ///-->
<param name="extension" value="1NXXNXXXXXX"/>
<!--/// proxy host: *optional* same as realm, if blank ///-->
<param name="proxy" value="nyc.voicepulse.com"/>
<!--/// expire in seconds: *optional* 3600, if blank ///-->
<param name="expire-seconds" value="600"/>
<param name="register" value="true"/>
</gateway>
Something like this, yes? I can use regular expressions in destination_number?
Q: There is object Session in JavaScript, Lua. Is Session.destination == destination_number from incoming call? It is not clear for me from what I have read so far.
TIA,
-Vladimir RodionovOn Wed, Aug 5, 2009 at 6:26 PM, Seven Du <dujinfang@gmail.com> wrote:
mod_easyroute?2009/8/6 Vladimir Rodionov <vladrodionov@gmail.com>
_______________________________________________Hi, everybody
This is a newbie question: Suppose I have XX (variable dynamic number) DIDs assigned to one sip trunk (from VOIP provider ABC ). All calls coming from VOIP provider ABC MUST be routed to the same lua/js/whatever script. Is it possible in FS? If yes, how everything should be configuered? Dialplan, sip gateway? One more question: suppose it is doeable as I hope then how can I get in my script CalleeID (not a CallerID)? Basicaly,
I want to acomplish the following:
1. Avoid re-configuring FS every time I got new bunch of DIDs assigned/released from/to my Voip provider.
2. Have a way of extracting CalleeID in my script.
TIA,
Vladimir Rodionov
FreeSWITCH-users mailing list
FreeSWITCH-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org
_______________________________________________
FreeSWITCH-users mailing list
FreeSWITCH-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org
_______________________________________________
FreeSWITCH-users mailing list
FreeSWITCH-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org
_______________________________________________
FreeSWITCH-users mailing list
FreeSWITCH-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org