Hi,
just added to the dialog module a new function that allow you to exchange data between dialogs - mainly to extract data from a different ongoing dialog. Such functionality is vital in complex scenarios (PBX related) like attended call transfer - in such cases you may want to route a new call based on information of existing dialogs. Real case example: OpenSIPS is doing dispatching over a set of Asterisk boxes (which act as SIP servers). A calls B and the call is established (by dispatching from OpenSIPS) via A1 Asterisk server A wants to transfer B to a new party C, so A makes a new call to C -> this call must end on A1 also, without going via dispatcher in openSIPS. So, when A calls C, OpenSIPS will check if A has an already existing call and if so, it will send the new call to the same Asterisk box as the existing call. In such a case, for each call, you need to attached to the call (as dialog variables) the callee, caller and the Asterisk box . When a new call is coming, you check if the new caller is already involved in a call and if so, fetch the value of the proxy in order to send to the same box. For more about the technical details of the function, see http://www.opensips.org/html/docs/modules/devel/dialog.html#id272137 Regards, Bogdan -- Bogdan-Andrei Iancu www.voice-system.ro _______________________________________________ Users mailing list [hidden email] http://lists.opensips.org/cgi-bin/mailman/listinfo/users |
Hi,
I have the following scenario : A1 asterisk server initiates a call to A2 asterisk server thru opensips; This A2 calls A and A lands on A1 asking A to dial a number. A then initiates a new call to A2 asterisk server thru opensips which calls B. A talks to B. The issue is that when B hangs up the 'BYE' message is not sent to A1, but twice to A2. The session on A1 hangs forever. Does the below fix this ? Brgds Erik -----Oorspronkelijk bericht----- Van: [hidden email] [mailto:[hidden email]] Namens Bogdan-Andrei Iancu Verzonden: woensdag 28 april 2010 17:47 Aan: [hidden email]; [hidden email]; [hidden email] Onderwerp: [OpenSIPS-Users] [NEW] exchanging info between dialogs Hi, just added to the dialog module a new function that allow you to exchange data between dialogs - mainly to extract data from a different ongoing dialog. Such functionality is vital in complex scenarios (PBX related) like attended call transfer - in such cases you may want to route a new call based on information of existing dialogs. Real case example: OpenSIPS is doing dispatching over a set of Asterisk boxes (which act as SIP servers). A calls B and the call is established (by dispatching from OpenSIPS) via A1 Asterisk server A wants to transfer B to a new party C, so A makes a new call to C -> this call must end on A1 also, without going via dispatcher in openSIPS. So, when A calls C, OpenSIPS will check if A has an already existing call and if so, it will send the new call to the same Asterisk box as the existing call. In such a case, for each call, you need to attached to the call (as dialog variables) the callee, caller and the Asterisk box . When a new call is coming, you check if the new caller is already involved in a call and if so, fetch the value of the proxy in order to send to the same box. For more about the technical details of the function, see http://www.opensips.org/html/docs/modules/devel/dialog.html#id272137 Regards, Bogdan -- Bogdan-Andrei Iancu www.voice-system.ro _______________________________________________ Users mailing list [hidden email] http://lists.opensips.org/cgi-bin/mailman/listinfo/users -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean. -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean. _______________________________________________ Users mailing list [hidden email] http://lists.opensips.org/cgi-bin/mailman/listinfo/users |
Hi Erik,
how does your opensips distribute the requests among the asterisk servers ? dispatching? or ? Regards, Bogdan erik pepermans wrote: > Hi, > > I have the following scenario : > > > A1 asterisk server initiates a call to A2 asterisk server thru opensips; > This A2 calls A and A lands on A1 asking A to dial a number. A then > initiates a new call to A2 asterisk server thru opensips which calls B. A > talks to B. > > The issue is that when B hangs up the 'BYE' message is not sent to A1, but > twice to A2. The session on A1 hangs forever. > > Does the below fix this ? > > Brgds > Erik > > -----Oorspronkelijk bericht----- > Van: [hidden email] > [mailto:[hidden email]] Namens Bogdan-Andrei Iancu > Verzonden: woensdag 28 april 2010 17:47 > Aan: [hidden email]; [hidden email]; > [hidden email] > Onderwerp: [OpenSIPS-Users] [NEW] exchanging info between dialogs > > > Hi, > > just added to the dialog module a new function that allow you to > exchange data between dialogs - mainly to extract data from a different > ongoing dialog. > > Such functionality is vital in complex scenarios (PBX related) like > attended call transfer - in such cases you may want to route a new call > based on information of existing dialogs. > > Real case example: > > OpenSIPS is doing dispatching over a set of Asterisk boxes (which > act as SIP servers). > A calls B and the call is established (by dispatching from OpenSIPS) > via A1 Asterisk server > A wants to transfer B to a new party C, so A makes a new call to C > -> this call must end on A1 also, without going via dispatcher in openSIPS. > So, when A calls C, OpenSIPS will check if A has an already existing > call and if so, it will send the new call to the same Asterisk box as > the existing call. > > In such a case, for each call, you need to attached to the call (as > dialog variables) the callee, caller and the Asterisk box . When a new > call is coming, you check if the new caller is already involved in a > call and if so, fetch the value of the proxy in order to send to the > same box. > > For more about the technical details of the function, see > http://www.opensips.org/html/docs/modules/devel/dialog.html#id272137 > > Regards, > Bogdan > > -- Bogdan-Andrei Iancu www.voice-system.ro _______________________________________________ Users mailing list [hidden email] http://lists.opensips.org/cgi-bin/mailman/listinfo/users |
Hi Bogdan,
I included an ngrep sip trace file which should explain : 2 asterisk servers on public addresses 11.01.01.001 and 22.02.02.002 are connected to OpenSIPS which listens on port 5071 at private address 192.168.5.1 (public address 99.09.09.009) - 11.01.01.001 sends an invite to 192.168.5.1 with the phone number of A - 192.168.5.1 prefixes the phone number of A via drouting module - 192.168.5.1 sends an invite to 22.02.02.002 with the prefixed phone number of A - 22.02.02.002 dials A - A picks up the phone and dials the phone number of B - 22.02.02.002 sends an invite to 192.168.5.1 with the phone number of B - 192.168.5.1 prefixes the phone number of B via drouting module - 192.168.5.1 sends an invite to 22.02.02.002 with the prefixed phone number of B - 22.02.02.002 dials B - B picks up the phone and talks to A So far so good; both legs have their own dialog did; then - B hangs up - 22.02.02.002 sends BYE to 192.168.5.1 - 192.168.5.1 sends BYE to 22.02.02.002 where I expect it should go to 11.01.01.001 11.01.01.001 never receives a BYE and keeps the session live forever - Thanks for your effort - Brgds Erik -----Oorspronkelijk bericht----- Van: [hidden email] [mailto:[hidden email]] Namens Bogdan-Andrei Iancu Verzonden: maandag 10 mei 2010 14:47 Aan: OpenSIPS users mailling list Onderwerp: Re: [OpenSIPS-Users] [NEW] exchanging info between dialogs Hi Erik, how does your opensips distribute the requests among the asterisk servers ? dispatching? or ? Regards, Bogdan erik pepermans wrote: > Hi, > > I have the following scenario : > > > A1 asterisk server initiates a call to A2 asterisk server thru opensips; > This A2 calls A and A lands on A1 asking A to dial a number. A then > initiates a new call to A2 asterisk server thru opensips which calls B. A > talks to B. > > The issue is that when B hangs up the 'BYE' message is not sent to A1, but > twice to A2. The session on A1 hangs forever. > > Does the below fix this ? > > Brgds > Erik > > -----Oorspronkelijk bericht----- > Van: [hidden email] > [mailto:[hidden email]] Namens Bogdan-Andrei Iancu > Verzonden: woensdag 28 april 2010 17:47 > Aan: [hidden email]; [hidden email]; > [hidden email] > Onderwerp: [OpenSIPS-Users] [NEW] exchanging info between dialogs > > > Hi, > > just added to the dialog module a new function that allow you to > exchange data between dialogs - mainly to extract data from a different > ongoing dialog. > > Such functionality is vital in complex scenarios (PBX related) like > attended call transfer - in such cases you may want to route a new call > based on information of existing dialogs. > > Real case example: > > OpenSIPS is doing dispatching over a set of Asterisk boxes (which > act as SIP servers). > A calls B and the call is established (by dispatching from OpenSIPS) > via A1 Asterisk server > A wants to transfer B to a new party C, so A makes a new call to C > -> this call must end on A1 also, without going via dispatcher in > So, when A calls C, OpenSIPS will check if A has an already existing > call and if so, it will send the new call to the same Asterisk box as > the existing call. > > In such a case, for each call, you need to attached to the call (as > dialog variables) the callee, caller and the Asterisk box . When a new > call is coming, you check if the new caller is already involved in a > call and if so, fetch the value of the proxy in order to send to the > same box. > > For more about the technical details of the function, see > > > Regards, > Bogdan > > -- Bogdan-Andrei Iancu www.voice-system.ro _______________________________________________ Users mailing list [hidden email] http://lists.opensips.org/cgi-bin/mailman/listinfo/users -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean. -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean. _______________________________________________ Users mailing list [hidden email] http://lists.opensips.org/cgi-bin/mailman/listinfo/users |
Hi Erik,
erik pepermans wrote: > Hi Bogdan, > > I included an ngrep sip trace file which should explain : > > 2 asterisk servers on public addresses 11.01.01.001 and 22.02.02.002 are > connected to OpenSIPS which listens on port 5071 at private address > 192.168.5.1 (public address 99.09.09.009) > > - 11.01.01.001 sends an invite to 192.168.5.1 with the phone number of A > - 192.168.5.1 prefixes the phone number of A via drouting module > - 192.168.5.1 sends an invite to 22.02.02.002 with the prefixed phone number > of A > - 22.02.02.002 dials A > - A picks up the phone and dials the phone number of B > - 22.02.02.002 sends an invite to 192.168.5.1 with the phone number of B > - 192.168.5.1 prefixes the phone number of B via drouting module > - 192.168.5.1 sends an invite to 22.02.02.002 with the prefixed phone number > of B > - 22.02.02.002 dials B > - B picks up the phone and talks to A > > So far so good; both legs have their own dialog did; then > > - B hangs up > - 22.02.02.002 sends BYE to 192.168.5.1 > - 192.168.5.1 sends BYE to 22.02.02.002 where I expect it should go to > 11.01.01.001 > (second one) between A (behind .002) and B (behind .002)... So, why the BYE should be sent to .001 when the other call leg (A) is behind .002 ?? Regards, Bogdan > 11.01.01.001 never receives a BYE and keeps the session live forever - > > Thanks for your effort - > > Brgds > Erik > > -----Oorspronkelijk bericht----- > Van: [hidden email] > [mailto:[hidden email]] Namens Bogdan-Andrei Iancu > Verzonden: maandag 10 mei 2010 14:47 > Aan: OpenSIPS users mailling list > Onderwerp: Re: [OpenSIPS-Users] [NEW] exchanging info between dialogs > > > Hi Erik, > > how does your opensips distribute the requests among the asterisk > servers ? dispatching? or ? > > Regards, > Bogdan > > erik pepermans wrote: > >> Hi, >> >> I have the following scenario : >> >> >> A1 asterisk server initiates a call to A2 asterisk server thru opensips; >> This A2 calls A and A lands on A1 asking A to dial a number. A then >> initiates a new call to A2 asterisk server thru opensips which calls B. A >> talks to B. >> >> The issue is that when B hangs up the 'BYE' message is not sent to A1, but >> twice to A2. The session on A1 hangs forever. >> >> Does the below fix this ? >> >> Brgds >> Erik >> >> -----Oorspronkelijk bericht----- >> Van: [hidden email] >> [mailto:[hidden email]] Namens Bogdan-Andrei Iancu >> Verzonden: woensdag 28 april 2010 17:47 >> Aan: [hidden email]; [hidden email]; >> [hidden email] >> Onderwerp: [OpenSIPS-Users] [NEW] exchanging info between dialogs >> >> >> Hi, >> >> just added to the dialog module a new function that allow you to >> exchange data between dialogs - mainly to extract data from a different >> ongoing dialog. >> >> Such functionality is vital in complex scenarios (PBX related) like >> attended call transfer - in such cases you may want to route a new call >> based on information of existing dialogs. >> >> Real case example: >> >> OpenSIPS is doing dispatching over a set of Asterisk boxes (which >> act as SIP servers). >> A calls B and the call is established (by dispatching from OpenSIPS) >> via A1 Asterisk server >> A wants to transfer B to a new party C, so A makes a new call to C >> -> this call must end on A1 also, without going via dispatcher in >> > openSIPS. > >> So, when A calls C, OpenSIPS will check if A has an already existing >> call and if so, it will send the new call to the same Asterisk box as >> the existing call. >> >> In such a case, for each call, you need to attached to the call (as >> dialog variables) the callee, caller and the Asterisk box . When a new >> call is coming, you check if the new caller is already involved in a >> call and if so, fetch the value of the proxy in order to send to the >> same box. >> >> For more about the technical details of the function, see >> >> > http://www.opensips.org/html/docs/modules/devel/dialog.html#id272137 > >> Regards, >> Bogdan >> >> >> > > > > ------------------------------------------------------------------------ > > _______________________________________________ > Users mailing list > [hidden email] > http://lists.opensips.org/cgi-bin/mailman/listinfo/users -- Bogdan-Andrei Iancu www.voice-system.ro _______________________________________________ Users mailing list [hidden email] http://lists.opensips.org/cgi-bin/mailman/listinfo/users |
In reply to this post by erik pepermans
Hi Bogdan,
I presume the first BYE to OpenSIPS should be forwarded to 11.01.01.001 ? What do you suggest as a solution ? U 2010/05/06 22:50:01.372924 22.02.02.002:5060 -> 192.168.5.1:5071 BYE sip:0479984159@11.01.01.001 SIP/2.0. Via: SIP/2.0/UDP 22.02.02.002:5060;branch=z9hG4bK09456547;rport. Route: <sip:192.168.5.1:5071;lr=on;did=244.7d4366b6>. From: <sip:0479984159@192.168.5.1:5071>;tag=as467b1d3e. To: "0479984159" <sip:[hidden email]>;tag=as1a9a691f. Call-ID: [hidden email]. CSeq: 102 BYE. User-Agent: Asterisk PBX. Max-Forwards: 70. X-Asterisk-HangupCause: Normal Clearing. X-Asterisk-HangupCauseCode: 16. Content-Length: 0. . # U 2010/05/06 22:50:01.390636 192.168.5.1:5071 -> 22.02.02.002:5060 BYE sip:0479984159@22.02.02.002:5060 SIP/2.0. Via: SIP/2.0/UDP 192.168.5.1:5071;branch=z9hG4bK1133.551ea136.0. Via: SIP/2.0/UDP 22.02.02.002:5060;received=22.02.02.002;branch=z9hG4bK09456547;rport=5060. From: <sip:0479984159@192.168.5.1:5071>;tag=as467b1d3e. To: "0479984159" <sip:[hidden email]>;tag=as1a9a691f. Call-ID: [hidden email]. CSeq: 102 BYE. User-Agent: Asterisk PBX. Max-Forwards: 69. X-Asterisk-HangupCause: Normal Clearing. X-Asterisk-HangupCauseCode: 16. Content-Length: 0. Brgds Erik -----Oorspronkelijk bericht----- Van: [hidden email] [mailto:[hidden email]] Namens erik pepermans Verzonden: maandag 10 mei 2010 23:11 Aan: 'OpenSIPS users mailling list' Onderwerp: Re: [OpenSIPS-Users] [NEW] exchanging info between dialogs Hi Bogdan, I included an ngrep sip trace file which should explain : 2 asterisk servers on public addresses 11.01.01.001 and 22.02.02.002 are connected to OpenSIPS which listens on port 5071 at private address 192.168.5.1 (public address 99.09.09.009) - 11.01.01.001 sends an invite to 192.168.5.1 with the phone number of A - 192.168.5.1 prefixes the phone number of A via drouting module - 192.168.5.1 sends an invite to 22.02.02.002 with the prefixed phone number of A - 22.02.02.002 dials A - A picks up the phone and dials the phone number of B - 22.02.02.002 sends an invite to 192.168.5.1 with the phone number of B - 192.168.5.1 prefixes the phone number of B via drouting module - 192.168.5.1 sends an invite to 22.02.02.002 with the prefixed phone number of B - 22.02.02.002 dials B - B picks up the phone and talks to A So far so good; both legs have their own dialog did; then - B hangs up - 22.02.02.002 sends BYE to 192.168.5.1 - 192.168.5.1 sends BYE to 22.02.02.002 where I expect it should go to 11.01.01.001 11.01.01.001 never receives a BYE and keeps the session live forever - Thanks for your effort - Brgds Erik -----Oorspronkelijk bericht----- Van: [hidden email] [mailto:[hidden email]] Namens Bogdan-Andrei Iancu Verzonden: maandag 10 mei 2010 14:47 Aan: OpenSIPS users mailling list Onderwerp: Re: [OpenSIPS-Users] [NEW] exchanging info between dialogs Hi Erik, how does your opensips distribute the requests among the asterisk servers ? dispatching? or ? Regards, Bogdan erik pepermans wrote: > Hi, > > I have the following scenario : > > > A1 asterisk server initiates a call to A2 asterisk server thru opensips; > This A2 calls A and A lands on A1 asking A to dial a number. A then > initiates a new call to A2 asterisk server thru opensips which calls B. A > talks to B. > > The issue is that when B hangs up the 'BYE' message is not sent to A1, but > twice to A2. The session on A1 hangs forever. > > Does the below fix this ? > > Brgds > Erik > > -----Oorspronkelijk bericht----- > Van: [hidden email] > [mailto:[hidden email]] Namens Bogdan-Andrei Iancu > Verzonden: woensdag 28 april 2010 17:47 > Aan: [hidden email]; [hidden email]; > [hidden email] > Onderwerp: [OpenSIPS-Users] [NEW] exchanging info between dialogs > > > Hi, > > just added to the dialog module a new function that allow you to > exchange data between dialogs - mainly to extract data from a different > ongoing dialog. > > Such functionality is vital in complex scenarios (PBX related) like > attended call transfer - in such cases you may want to route a new call > based on information of existing dialogs. > > Real case example: > > OpenSIPS is doing dispatching over a set of Asterisk boxes (which > act as SIP servers). > A calls B and the call is established (by dispatching from OpenSIPS) > via A1 Asterisk server > A wants to transfer B to a new party C, so A makes a new call to C > -> this call must end on A1 also, without going via dispatcher in > So, when A calls C, OpenSIPS will check if A has an already existing > call and if so, it will send the new call to the same Asterisk box as > the existing call. > > In such a case, for each call, you need to attached to the call (as > dialog variables) the callee, caller and the Asterisk box . When a new > call is coming, you check if the new caller is already involved in a > call and if so, fetch the value of the proxy in order to send to the > same box. > > For more about the technical details of the function, see > > > Regards, > Bogdan > > -- Bogdan-Andrei Iancu www.voice-system.ro _______________________________________________ Users mailing list [hidden email] http://lists.opensips.org/cgi-bin/mailman/listinfo/users -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean. -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean. -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean. _______________________________________________ Users mailing list [hidden email] http://lists.opensips.org/cgi-bin/mailman/listinfo/users |
Free forum by Nabble | Edit this page |