Hi Guys, I am a beginner to FreeSWITCH. I have few questions. 1. What is the difference between BRIDGE, ORIGINATE and TRANSFER. 2. I have two FreeSWITCH box. BoxA and BoxB 1. User will make a call to BoxA; BoxA's IVR collect some information i.e. userid and pin. 2. Now BoxA will forward/transfer/bridge call to BoxB's IVR ( here i want to pass userid as channel variable) 3. Box B will ask for another pin i.e. pin2, verifies the same and pass whether pin2 is correct or not to BoxA (also transfers the call to boxA's ivr) 4. Box A shall play message to User whether this process is successful or not. And then call shall be hanged up. My work till date is 1. setup the two freeswitch ivr, box a and box b. 2. I wrote .net code to handle the individual role. i.e. to ask user id and pin 3. I facing the problem in forwarding a call from boxA to boxB along with the userID Please suggest the best way to implement it. I hope I have explained the scenario properly. Thanks & Regards, Jigs.
Hi, I have tried this to forward a call from BoxA to BoxB; 1. session.Execute("bridge", [user_id=123456]sofia/internal/5111@BoxB) It forwards the call successfully; BoxB answer the call and does the process but here I don't see the variable "user_id" value I set. session.GetVariable("user_id") returns empty string. 2. I also tried session.Execute ("originate",[user_id=123456]sofia/internal/5111@BoxB) In this case it creates a new Channel successfully but I don't see any call request to BoxB; It just creates a new channel successfully and after some time call gets cleared. Please Help me regarding this; i want to know what is the difference between Bridge and Originate; and Also Let me know the best possible scenario to implement the following mentioned scenario. Thanks & Regards, Jigs. On Tue, Jul 6, 2010 at 12:01 PM, Jigar Thakkar <thakkar.jigar@gmail.com>wrote:
Hi Guys,
I am a beginner to FreeSWITCH. I have few questions.
1. What is the difference between BRIDGE, ORIGINATE and TRANSFER. 2. I have two FreeSWITCH box. BoxA and BoxB 1. User will make a call to BoxA; BoxA's IVR collect some information i.e. userid and pin. 2. Now BoxA will forward/transfer/bridge call to BoxB's IVR ( here i want to pass userid as channel variable) 3. Box B will ask for another pin i.e. pin2, verifies the same and pass whether pin2 is correct or not to BoxA (also transfers the call to boxA's ivr) 4. Box A shall play message to User whether this process is successful or not. And then call shall be hanged up.
My work till date is 1. setup the two freeswitch ivr, box a and box b. 2. I wrote .net code to handle the individual role. i.e. to ask user id and pin 3. I facing the problem in forwarding a call from boxA to boxB along with the userID Please suggest the best way to implement it. I hope I have explained the scenario properly.
Thanks & Regards,
Jigs.
I am sorry to send this message again. But i dont see my mails in archive so I changed membership settings and tried to send it again. Thanks. Jigs ---------- Forwarded message ---------- From: Jigar Thakkar <thakkar.jigar@gmail.com> Date: Wed, Jul 7, 2010 at 11:11 AM Subject: Re: Two FreeSWITCH Box IVR Call Transfer To: freeswitch-users@lists.freeswitch.org Hi, I have tried this to forward a call from BoxA to BoxB; 1. session.Execute("bridge", [user_id=123456]sofia/internal/5111@BoxB) It forwards the call successfully; BoxB answer the call and does the process but here I don't see the variable "user_id" value I set. session.GetVariable("user_id") returns empty string. 2. I also tried session.Execute ("originate",[user_id=123456]sofia/internal/5111@BoxB) In this case it creates a new Channel successfully but I don't see any call request to BoxB; It just creates a new channel successfully and after some time call gets cleared. Please Help me regarding this; i want to know what is the difference between Bridge and Originate; and Also Let me know the best possible scenario to implement the following mentioned scenario. Thanks & Regards, Jigs. On Tue, Jul 6, 2010 at 12:01 PM, Jigar Thakkar <thakkar.jigar@gmail.com>wrote:
Hi Guys,
I am a beginner to FreeSWITCH. I have few questions.
1. What is the difference between BRIDGE, ORIGINATE and TRANSFER. 2. I have two FreeSWITCH box. BoxA and BoxB 1. User will make a call to BoxA; BoxA's IVR collect some information i.e. userid and pin. 2. Now BoxA will forward/transfer/bridge call to BoxB's IVR ( here i want to pass userid as channel variable) 3. Box B will ask for another pin i.e. pin2, verifies the same and pass whether pin2 is correct or not to BoxA (also transfers the call to boxA's ivr) 4. Box A shall play message to User whether this process is successful or not. And then call shall be hanged up.
My work till date is 1. setup the two freeswitch ivr, box a and box b. 2. I wrote .net code to handle the individual role. i.e. to ask user id and pin 3. I facing the problem in forwarding a call from boxA to boxB along with the userID Please suggest the best way to implement it. I hope I have explained the scenario properly.
Thanks & Regards,
Jigs.
In logs (Info) at BoxA before executing Bridge; I can see that it has set user_id=123456 (variable_user_id : [123456]) but I don't see this variable at BoxB. I also tried the same from dialplan; BoxA <extension name="ivr_demo"> <condition field="destination_number" expression="^5000$"> <action application="answer"/> <action application="sleep" data="2000"/> <action application="export" data="user_id=123456" /> <action application="info" /> Here I can see the user_id is set like ( variable_user_id : [123456] ) <action application="bridge" data="sofia/${use_profile}/5111@BoxB" /> </condition> </extension> BoxB <extension name="ivr_demo2"> <condition field="destination_number" expression="^5111$"> <action application="answer"/> <action application="sleep" data="2000"/> <action application="info" /> Here in this Info i dont see user_id variable <action application="managed" data="MyClass myvar ${ccnn_from_issuer}" /> </condition> </extension> How can i do get the user_id variable value to BoxB? Please help. Thanks Jigs. On Wed, Jul 7, 2010 at 11:11 AM, Jigar Thakkar <thakkar.jigar@gmail.com>wrote:
Hi,
I have tried this to forward a call from BoxA to BoxB;
1. session.Execute("bridge", [user_id=123456]sofia/internal/5111@BoxB)
It forwards the call successfully; BoxB answer the call and does the process but here I don't see the variable "user_id" value I set. session.GetVariable("user_id") returns empty string.
2. I also tried session.Execute ("originate",[user_id=123456]sofia/internal/5111@BoxB)
In this case it creates a new Channel successfully but I don't see any call request to BoxB; It just creates a new channel successfully and after some time call gets cleared.
Please Help me regarding this; i want to know what is the difference between Bridge and Originate; and Also Let me know the best possible scenario to implement the following mentioned scenario.
Thanks & Regards,
Jigs.
On Tue, Jul 6, 2010 at 12:01 PM, Jigar Thakkar <thakkar.jigar@gmail.com>wrote:
Hi Guys,
I am a beginner to FreeSWITCH. I have few questions.
1. What is the difference between BRIDGE, ORIGINATE and TRANSFER. 2. I have two FreeSWITCH box. BoxA and BoxB 1. User will make a call to BoxA; BoxA's IVR collect some information i.e. userid and pin. 2. Now BoxA will forward/transfer/bridge call to BoxB's IVR ( here i want to pass userid as channel variable) 3. Box B will ask for another pin i.e. pin2, verifies the same and pass whether pin2 is correct or not to BoxA (also transfers the call to boxA's ivr) 4. Box A shall play message to User whether this process is successful or not. And then call shall be hanged up.
My work till date is 1. setup the two freeswitch ivr, box a and box b. 2. I wrote .net code to handle the individual role. i.e. to ask user id and pin 3. I facing the problem in forwarding a call from boxA to boxB along with the userID Please suggest the best way to implement it. I hope I have explained the scenario properly.
Thanks & Regards,
Jigs.
You're going to have to pass it in a SIP header by setting a variable like sip_h_X-UserID=123456 then on the far side extract it out of the variables... variables from one FreeSWITCH to the next don't magically appear. /b On Jul 7, 2010, at 9:07 AM, Jigar Thakkar wrote:
How can i do get the user_id variable value to BoxB?
Please help.
Thanks
Jigs.
I have an untested solution to this issue. Note: I am using JavaScript code examples: The following will do the "divert"/"transfer" if you have a session. session.execute("deflect", dfltstr); When Sip is involved, FreeSwitch when using a SIP "Call Transfer" which asks some upstream system to send the call to some other system. When doing this, a new destination address can be supplied. This can include a "postd" parameter. I think postd stands for "post dial" and is a standard parameter that can be added to the destination address. RFC 3261, section 19.1.6 has the following example: Thus, tel:+358-555-1234567;postd=pp22 becomes sip:+358-555-1234567;postd=pp22@foo.com;user=phone There should be a way to add a postd string to the new destination address. So you can put the "user id" into the postd string. When the divert/transfer occurs, the new system will get the call as if it was an originated call. Looking at the destination string, the presence or absence of postd can determine how the call should be handled. If a postd is provided, the value can be used as the "user id". Note: I was looking at conferencing so planned to pass the conference information this way. Another note: I don't think that "user=phone" is necessary. The systems seem to be designed to work with it provided or not provided. If/When I find time, I will code this up as a JavaScript example and add it to the Wiki. -- View this message in context: http://freeswitch-users.2379917.n2.nabble.com/Two-FreeSWITCH-Box-IVR-Call-Tr... Sent from the freeswitch-users mailing list archive at Nabble.com.
Thanks Brian, It worked. @David, I like to explore the way you suggested. But you may have a look at what Brian told. Is it secure to transfer data in header ? If not then what can be the way to make it secure? Thanks & Regards, Jigar. On Wed, Jul 7, 2010 at 8:10 PM, David Swardstrom <dswardstrom@remotelink.com
wrote:
I have an untested solution to this issue. Note: I am using JavaScript code examples: The following will do the "divert"/"transfer" if you have a session. session.execute("deflect", dfltstr);
When Sip is involved, FreeSwitch when using a SIP "Call Transfer" which asks some upstream system to send the call to some other system.
When doing this, a new destination address can be supplied. This can include a "postd" parameter. I think postd stands for "post dial" and is a standard parameter that can be added to the destination address. RFC 3261, section 19.1.6 has the following example: Thus, tel:+358-555-1234567;postd=pp22 becomes sip:+358-555-1234567;postd=pp22@foo.com;user=phone
There should be a way to add a postd string to the new destination address. So you can put the "user id" into the postd string.
When the divert/transfer occurs, the new system will get the call as if it was an originated call. Looking at the destination string, the presence or absence of postd can determine how the call should be handled. If a postd is provided, the value can be used as the "user id".
Note: I was looking at conferencing so planned to pass the conference information this way.
Another note: I don't think that "user=phone" is necessary. The systems seem to be designed to work with it provided or not provided.
If/When I find time, I will code this up as a JavaScript example and add it to the Wiki. -- View this message in context: http://freeswitch-users.2379917.n2.nabble.com/Two-FreeSWITCH-Box-IVR-Call-Tr... Sent from the freeswitch-users mailing list archive at Nabble.com.
_______________________________________________ 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
You could also encrypt it then decrypt it on the far side. /b On Jul 9, 2010, at 6:35 AM, Jigar Thakkar wrote:
Thanks Brian, It worked.
@David, I like to explore the way you suggested. But you may have a look at what Brian told.
Is it secure to transfer data in header ? If not then what can be the way to make it secure?
Thanks & Regards,
Jigar.
If you are using SIP, then anything in the Headers in the SIP message are subject to being examined by some 3rd party. They are not secure. They could also be spoofed or intercepted and modified (man in the middle). You can use SIPS, that is why it was designed. Don't know what kind of issue this would raise with carriers. Another possibility since you control the original destination and the actual destination system. Use a common database, put a record into the DB that the call is being transferred and use as the postd number the Key. Probably should put From (ANI), To (DNIS), user info, and other information into the record. On the receiving side, look up the entry/record, verify what can be verified, the use the information in the record to determine the user. This is similar to the sophisticated capabilities used in some ACD installations. -- View this message in context: http://freeswitch-users.2379917.n2.nabble.com/Two-FreeSWITCH-Box-IVR-Call-Tr... Sent from the freeswitch-users mailing list archive at Nabble.com.
participants (3)
-
Brian West
-
David Swardstrom
-
Jigar Thakkar