How to do routing using javascript
From Yate Documentation
(Difference between revisions)
Line 8: | Line 8: | ||
// First display calling and called party numbers | // First display calling and called party numbers | ||
Engine.output("Got call from '" + message.caller + "' to '" + message.called + "'"); | Engine.output("Got call from '" + message.caller + "' to '" + message.called + "'"); | ||
− | |||
− | |||
− | |||
− | |||
− | |||
if (message.called.substr(0,2)=="19") { | if (message.called.substr(0,2)=="19") { | ||
− | // route calls starting with | + | // route calls starting with 19 to 192.168.168.1 |
// 5060 is the default sip port. When using the default port you don't need to specify it | // 5060 is the default sip port. When using the default port you don't need to specify it | ||
Channel.callJust("sip/sip:" + message.called + "@192.168.168.1:5060"); | Channel.callJust("sip/sip:" + message.called + "@192.168.168.1:5060"); | ||
− | } else if (message.called.substr(0,2)=="00" && message.called.length>10) | + | } else if (message.called.substr(0,2)=="00" && message.called.length>10) { |
+ | //route calls using a function | ||
routeOutside(); | routeOutside(); | ||
− | else if (message.called.match("^60")) | + | } else if (message.called.match("^60")) { |
+ | //route calls starting with 60 to 192.168.168.1 | ||
Channel.callJust("h323/"+message.called+"@192.168.168.1:1720"); | Channel.callJust("h323/"+message.called+"@192.168.168.1:1720"); | ||
else if (message.caller=="209") { | else if (message.caller=="209") { | ||
+ | //route calls from caller: 209 | ||
Channel.callJust("iax/user_iax@192.168.168.1:4569/"+message.called."@iaxcontext"); | Channel.callJust("iax/user_iax@192.168.168.1:4569/"+message.called."@iaxcontext"); | ||
} else { | } else { | ||
− | Channel.callJust("wave/play//var/spool/ | + | //route other calls that don't match the above rules |
+ | Channel.callJust("wave/play//var/spool/sounds/hello.au"); | ||
} | } | ||
Line 34: | Line 33: | ||
// rewrite called number: strip 00 and add +_in front of the number | // rewrite called number: strip 00 and add +_in front of the number | ||
message.called = "+" + message.called.substr(2); | message.called = "+" + message.called.substr(2); | ||
− | // send all calls starting with +40 to line "gwout" | + | // send all calls starting with +40 to line "gwout" defined in accfile |
message.line = "gwout"; | message.line = "gwout"; | ||
Channel.callJust("line/"+message.called); | Channel.callJust("line/"+message.called); | ||
} | } |
Revision as of 11:21, 5 October 2012
To configure a script for Javascript routing it must be listed in the javascript.conf file:
[general] routing=example.js
The example.js for outside routing requires to configure accfile.conf:
// First display calling and called party numbers Engine.output("Got call from '" + message.caller + "' to '" + message.called + "'"); if (message.called.substr(0,2)=="19") { // route calls starting with 19 to 192.168.168.1 // 5060 is the default sip port. When using the default port you don't need to specify it Channel.callJust("sip/sip:" + message.called + "@192.168.168.1:5060"); } else if (message.called.substr(0,2)=="00" && message.called.length>10) { //route calls using a function routeOutside(); } else if (message.called.match("^60")) { //route calls starting with 60 to 192.168.168.1 Channel.callJust("h323/"+message.called+"@192.168.168.1:1720"); else if (message.caller=="209") { //route calls from caller: 209 Channel.callJust("iax/user_iax@192.168.168.1:4569/"+message.called."@iaxcontext"); } else { //route other calls that don't match the above rules Channel.callJust("wave/play//var/spool/sounds/hello.au"); } function routeOutside() { // rewrite caller number for all calls that will be routed to this account message.caller = "+40211231234"; // rewrite called number: strip 00 and add +_in front of the number message.called = "+" + message.called.substr(2); // send all calls starting with +40 to line "gwout" defined in accfile message.line = "gwout"; Channel.callJust("line/"+message.called); }