Dear All I want to integrate sugarcrm and asterisk , so when customer call the call center the agent or extension which answers the call , before pickup the phone and talk to customer , view his/her information if it is available. I do this as described below : 1-Setup login username for sugarcrm for each extension 2-Extension Users will login to the sugarcrm. 3-Develop php script to handle new call ( this script will execute from asterisk ) 4-The path to the script is like this : http://sugarcrmIP/popup.php?number=CALLERID&extension=EXT i.e. consider the extension number is 105 and the callerid is 7891234. so these numbers will replace the CALLERID and EXT as follows http://sugarcrmIP/popup?number=7891234&extension=105 5-In asterisk in extensions.conf File I have edited the Macro named std-exten ( [macro-stdexten] ) Just before Dial I put the following : [macro-stdexten] ; ; Standard extension macro: ; ${ARG1} - Extension (we could have used ${MACRO_EXTEN} here as well ; ${ARG2} - Device(s) to ring ; exten => s,1,Gotoif($[{LEN(${CALLERID(num)})} > 3]?3) exten => s,2,Goto(s,4) exten => s,3,TrySystem(wget -qb -O /dev/null -o /dev/null " http://sugarcrmIP/popup.php?number=${CALLERID(num)}&extension=${ARG1}") exten => s,4,Dial(${ARG2},35,rt) ; Ring the interface, 20 seconds maximum exten => s,5,Goto(s-${DIALSTATUS},1) ; Jump based on status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER) exten => s-NOANSWER,1,Voicemail(${ARG1},u) ; If unavailable, send to voicemail w/ unavail announce exten => s-NOANSWER,2,Goto(default,s,1) ; If they press #, return to start ;exten => s-BUSY,1,Voicemail(${ARG1},b) ; If busy, send to voicemail w/ busy announce ;exten => s-BUSY,2,Goto(default,s,1) ; If they press #, return to start exten => s-BUSY,1,Playtones(busy) exten => _s-.,1,Goto(s-NOANSWER,1) ; Treat anything else as no answer exten => a,1,VoicemailMain(${ARG1}) ; If they press *, send the user into VoicemailMain so when calls come in to asterisk before execute the dial in the macro it will execute the TrySystem(wget -qb -O /dev/null -o /dev/null " http://sugarcrmIP/popup.php?number=${CALLERID(num)}&extension=${ARG1}") and replace ${CALLERID(num)} with the callerid of customer and ${ARG1} with user extension as I stated in step 4 as an example the following will execute TrySystem(wget -qb -O /dev/null -o /dev/null " http://sugarcrmIP/popup.php?number=7891234&extension=105") and this will cause a screen popup on the user screen which is logged in the sugarcrm and his/her extension number is 105. Everything work fine with this implementation but when it comes to Queue it fails , cause in the Queue the [macro-stdexten] will not be executed for dialing. I have a Queue ( huntgroup ) which all the extensions are its member and with random algorithm the calls will be distributed to extensions. I need the popup but don't know how to execute the URL with the replacement of the ${CALLERID(num)} and ${ARG1} with value. Please someone help me. Best Regards, Mohsen -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20090212/78eb51dc/attachment.htm
Mohsen <mohsen1380 at gmail.com> writes:> I have a Queue ( huntgroup ) which all the extensions are its member and > with random algorithm the calls will be distributed to extensions. > I need the popup but don't know how to execute the URL with the > replacement of the ${CALLERID(num)} and ${ARG1} with value.You can do almost anything if you use Local/1234 at somecontext instead of SIP/1234 in your queues. /Benny
Mohsen, Here is one way you can do this: 1. In queues.conf add setinterfacevar=yes 2. Pass an AGI script to the queue application which reads in the MEMBERINTERFACE channel variable and makes the web request for you. Hope this helps, -Dave Mohsen wrote:> Dear All > > I want to integrate sugarcrm and asterisk , so when customer call the > call center the agent or extension which answers the call , before > pickup the phone and talk to customer , view his/her information if it > is available. > > I do this as described below : > 1-Setup login username for sugarcrm for each extension > 2-Extension Users will login to the sugarcrm. > 3-Develop php script to handle new call ( this script will execute > from asterisk ) > 4-The path to the script is like this : > http://sugarcrmIP/popup.php?number=CALLERID&extension=EXT > <http://sugarcrmIP/popup.php?number=CALLERID&extension=EXT> > > i.e. consider the extension number is 105 and the callerid is 7891234. > > so these numbers will replace the CALLERID and EXT as follows > > http://sugarcrmIP/popup?number=7891234&extension=105 > <http://sugarcrmIP/popup?number=7891234&extension=105> > > 5-In asterisk in extensions.conf File I have edited the Macro named > std-exten ( [macro-stdexten] ) > > Just before Dial I put the following : > > [macro-stdexten] > ; > ; Standard extension macro: > ; ${ARG1} - Extension (we could have used ${MACRO_EXTEN} here as well > ; ${ARG2} - Device(s) to ring > ; > > exten => s,1,Gotoif($[{LEN(${CALLERID(num)})} > 3]?3) > exten => s,2,Goto(s,4) > exten => s,3,TrySystem(wget -qb -O /dev/null -o /dev/null > "http://sugarcrmIP/popup.php?number=${CALLERID(num)}&extension=${ARG1} > <http://sugarcrmIP/popup.php?number=$%7BCALLERID%28num%29%7D&extension=$%7BARG1%7D>") > exten => s,4,Dial(${ARG2},35,rt) ; Ring the interface, 20 seconds maximum > exten => s,5,Goto(s-${DIALSTATUS},1) ; Jump based on status > (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER) > exten => s-NOANSWER,1,Voicemail(${ARG1},u) ; If unavailable, send to > voicemail w/ unavail announce > exten => s-NOANSWER,2,Goto(default,s,1) ; If they press #, return to > start > ;exten => s-BUSY,1,Voicemail(${ARG1},b) ; If busy, send to voicemail > w/ busy announce > ;exten => s-BUSY,2,Goto(default,s,1) ; If they press #, return to start > exten => s-BUSY,1,Playtones(busy) > exten => _s-.,1,Goto(s-NOANSWER,1) ; Treat anything else as no answer > exten => a,1,VoicemailMain(${ARG1}) ; If they press *, send the user > into VoicemailMain > > so when calls come in to asterisk before execute the dial in the macro > it will execute the > TrySystem(wget -qb -O /dev/null -o /dev/null > "http://sugarcrmIP/popup.php?number=${CALLERID(num)}&extension=${ARG1} > <http://sugarcrmIP/popup.php?number=$%7BCALLERID%28num%29%7D&extension=$%7BARG1%7D>") > and replace ${CALLERID(num)} with the callerid of customer and > ${ARG1} with user extension > > as I stated in step 4 as an example the following will execute > > TrySystem(wget -qb -O /dev/null -o /dev/null > "http://sugarcrmIP/popup.php?number=7891234&extension=105 > <http://sugarcrmIP/popup.php?number=7891234&extension=105>") > > and this will cause a screen popup on the user screen which is logged > in the sugarcrm and his/her extension number is 105. > > > Everything work fine with this implementation but when it comes to > Queue it fails , cause in the Queue the [macro-stdexten] will not be > executed for dialing. > > > I have a Queue ( huntgroup ) which all the extensions are its member > and with random algorithm the calls will be distributed to extensions. > I need the popup but don't know how to execute the URL with the > replacement of the ${CALLERID(num)} and ${ARG1} with value. > > Please someone help me. > > Best Regards, > > Mohsen > > > ------------------------------------------------------------------------ > > _______________________________________________ > -- Bandwidth and Colocation Provided by http://www.api-digital.com -- > > asterisk-users mailing list > To UNSUBSCRIBE or update options visit: > http://lists.digium.com/mailman/listinfo/asterisk-users
> >You can do almost anything if you use Local/1234 at somecontext instead > >of SIP/1234 in your queues. > > > >/Benny > > >Thanks Benny I will check it. Best Regards, Mohsen -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20090213/36a11639/attachment.htm
If you use the free version of QueueMetrics, you can have the queue URL parameter passed along and each agent can open up an external app using the web interface. As this part is not linked to the main stats module, it works just fine for all of your agents with no limitations. Thanks l. 2009/2/12 Mohsen <mohsen1380 at gmail.com>> Dear All > > I want to integrate sugarcrm and asterisk , so when customer call the call > center the agent or extension which answers the call , before pickup the > phone and talk to customer , view his/her information if it is available. > > I do this as described below : > 1-Setup login username for sugarcrm for each extension > 2-Extension Users will login to the sugarcrm. > 3-Develop php script to handle new call ( this script will execute from > asterisk ) > 4-The path to the script is like this : > http://sugarcrmIP/popup.php?number=CALLERID&extension=EXT > > i.e. consider the extension number is 105 and the callerid is 7891234. > > so these numbers will replace the CALLERID and EXT as follows > > http://sugarcrmIP/popup?number=7891234&extension=105 > > 5-In asterisk in extensions.conf File I have edited the Macro named > std-exten ( [macro-stdexten] ) > > Just before Dial I put the following : > > [macro-stdexten] > ; > ; Standard extension macro: > ; ${ARG1} - Extension (we could have used ${MACRO_EXTEN} here as well > ; ${ARG2} - Device(s) to ring > ; > > exten => s,1,Gotoif($[{LEN(${CALLERID(num)})} > 3]?3) > exten => s,2,Goto(s,4) > exten => s,3,TrySystem(wget -qb -O /dev/null -o /dev/null " > http://sugarcrmIP/popup.php?number=${CALLERID(num)}&extension=${ARG1}<http://sugarcrmIP/popup.php?number=$%7BCALLERID(num)%7D&extension=$%7BARG1%7D> > ") > exten => s,4,Dial(${ARG2},35,rt) ; Ring the interface, 20 seconds maximum > exten => s,5,Goto(s-${DIALSTATUS},1) ; Jump based on status > (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER) > exten => s-NOANSWER,1,Voicemail(${ARG1},u) ; If unavailable, send to > voicemail w/ unavail announce > exten => s-NOANSWER,2,Goto(default,s,1) ; If they press #, return to start > ;exten => s-BUSY,1,Voicemail(${ARG1},b) ; If busy, send to voicemail w/ > busy announce > ;exten => s-BUSY,2,Goto(default,s,1) ; If they press #, return to start > exten => s-BUSY,1,Playtones(busy) > exten => _s-.,1,Goto(s-NOANSWER,1) ; Treat anything else as no answer > exten => a,1,VoicemailMain(${ARG1}) ; If they press *, send the user into > VoicemailMain > > so when calls come in to asterisk before execute the dial in the macro it > will execute the > TrySystem(wget -qb -O /dev/null -o /dev/null " > http://sugarcrmIP/popup.php?number=${CALLERID(num)}&extension=${ARG1}<http://sugarcrmIP/popup.php?number=$%7BCALLERID(num)%7D&extension=$%7BARG1%7D> > ") > and replace ${CALLERID(num)} with the callerid of customer and ${ARG1} > with user extension > > as I stated in step 4 as an example the following will execute > > TrySystem(wget -qb -O /dev/null -o /dev/null " > http://sugarcrmIP/popup.php?number=7891234&extension=105") > > and this will cause a screen popup on the user screen which is logged in > the sugarcrm and his/her extension number is 105. > > > Everything work fine with this implementation but when it comes to Queue it > fails , cause in the Queue the [macro-stdexten] will not be executed for > dialing. > > > I have a Queue ( huntgroup ) which all the extensions are its member and > with random algorithm the calls will be distributed to extensions. > I need the popup but don't know how to execute the URL with the replacement > of the ${CALLERID(num)} and ${ARG1} with value. > > Please someone help me. > > Best Regards, > > Mohsen > > > > _______________________________________________ > -- Bandwidth and Colocation Provided by http://www.api-digital.com -- > > asterisk-users mailing list > To UNSUBSCRIBE or update options visit: > http://lists.digium.com/mailman/listinfo/asterisk-users >-- Loway - home of QueueMetrics - http://queuemetrics.com -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20090213/c8af9fe8/attachment.htm