|
|
|
|
|
|
|
|
SMS Callback for Asterisk PBX
SMS callback allows you to eliminate dtmf detection problems and inconvenience when using a callback solution. In this section I will show a generic example for accepting SMS messages and using them as a trigger for asterisk callback call.
For the integration of the sms gateway with asterisk server we will use Hypermedia SMS Server module to accept the SMS messages and open url in which the asterisk manager originate command will reside.
Hypermedia SMS Server Configuration
edit smsgw.ini:
[general] IP=192.168.9.2 Port=8878 OpenUrl=yes Url=http://192.168.9.10/receivesms.php
Hypermedia SMS server will open the url http://192.168.9.10/receivesms.php for each incoming SMS. Do not forget to select allow SMS triggers for the modules in HMC.
Web page code
edit receivesms.php:
include "phpagi.php"; $callback_number = $_REQUEST['number']; $destination_number = trim($_REQUEST['message']," "); $unicode = $_REQUEST['unicode'];
$phone_number=""; $msg=""; if ($unicode=="8"){ $i=1; while($i*4<strlen($destination_number)){ $str=substr($destination_number,4*$i,4); //$str=substr($destination_number,4*$i+3,1); if (substr($str,0,3)=="003"){ $msg=$msg.substr($str,3); } $i++; } $destination_number=$msg; }
$agiManager = new AGI_AsteriskManager(); $manager = $agiManager->connect("192.168.9.10","user","pasword"); if (!$manager) { syslog(LOG_ERR, "Connection to Asterisk Manager Failed"); die("Connection to Asterisk Manager Failed"); } else { $astVariable=array ( "callback_number=".$callback_number, "destination_number=".$destination_number, ); $eventName="Originate"; $eventData['Channel']="sip/hmgw/$callback_number"; $eventData['Context']="hm_callback"; $eventData['Exten']="$destination_number"; $eventData['Account']="$callback_number"; $eventData['Callerid']=""; $eventData['Priority']=1; $eventData['Timeout']="60000"; $eventData['ActionID']=""; $eventData['Variable']="dummyvariable=null\r\n"; foreach ($astVariable as $variable) { $eventData['Variable'].="Variable: ".$variable."\r\n"; } $agiManager->send_request($eventName,$eventData); }
Asterisk Dialplan
edit extensions.conf and add the following:
[hm_callback] exten => _X.,1,answer exten => _X.,n,dial(sip/hmgw/${destination_number})
edit sip.conf and add the following for using HG trunk:
[hmgw] type=friend host=192.168.9.2 disallow=all allow=ulaw allow=alaw insecure=very context=default
more information about 1telecom solutions >>
Copyright © 2008 1Telecom Ltd
|
|