VoiceGuide IVR Software Main Page
Jump to content

Multiple outbound SIP calls simultaneously

Recommended Posts

Ok, step 2. I need to have multiple outbound calls simultaneously. I have configured the <identity> tag and the HMP registers with the ShoreTel switch and all (2 evaluation lines) extensions are inbound functional. However, when I dial outbound the first line dials and rings but with no audio, the second line dials and the call works fine. I assume this is because it is using the same <CallerID> tag and taking over the call. I can only have one call at a time outbound. How can I have the system dial using the different extensions?

 

I have a trace of the the test calls.

MultiCallOut.zip

Share this post


Link to post

WireShark trace shows that call to "137" was never answered. No "OK" was ever sent to VoiceGuide/HMP to indicate call was answered.

 

Only the "100 - Trying" and "180 - Ringing" messages were received. 20 seconds later the "603 - Declined" message was received, and VoiceGuide/HMP replied with an Acknowledgement (ACK) to that. That would have ended the call attempt. The call was never connected.

 

 

NB. WireShark trace can be filtered to just include SIP and RTP traces. Use this expression in the WireShark's Filter text box:

 

sip or rtp

Share this post


Link to post

I did the trace again and attached the KtTel and VGEngine logs. When I load numbers, my ext. 137 rings, when answer it it is just a dialtone. My cellphone also rings at the same time and it is dead air. I am not hanging up or declining the call, I don't know what the system is doing. I hope the logs will show something that can help.

 

Thanks

MultiCallOut.zip

1205_ktTel.zip

Share this post


Link to post

Additional info: All calls work fine if sent to the dialer individually or the dialer is set to only use 1 trunk.

Share this post


Link to post

In this trace we see that call to "137" was answered with OK response returned to VoiceGuide/HMP.

 

WireShark trace shows that call to "94079488141" was never answered. No "OK" was ever sent to VoiceGuide/HMP to indicate call was answered.

For the "94079488141" call only the "100 - Trying" and "180 - Ringing" messages were received, and 20 seconds later the "603 - Declined" message was received, and VoiceGuide/HMP replied with an Acknowledgement (ACK) to that. From VoiceGuide/HMP point of view the "94079488141" call was never connected.

 

 

From WireShark trace it looks like the RTP packets sent out from VoiceGuide/HMP cannot reach their destination (?) See all these "Port Unreachable" ICMP messages on RTP packets to 198.168.1.73. Is 198.168.1.73 the IP address of the "137" handset?

Maybe this is why you are not hearing anything on call answer - no RTP is being received and looks like in that situation the device plays dial tone instead... (?).

 

Is it possible that you have some routing restrictions which prevents some ports from being accessed?

Share this post


Link to post

Looks like both calls are made with CallerID set as ivr@198.168.1.96.

Does yous IPPBX (ShoreTel) only allows one call at a time from a registered extension?

 

Have you tried making one call with CallerID set to ivr@198.168.1.96 and the second call having CallerID set to ivr2@198.168.1.96 ?

 

VoiceGuide trace shows that an attempt to register two extensions is made, and looks like both registrations succeeded (?) Would need to see WireShark trace capturing registration to confirm.

 

 

 

151616.696 1804 fn VoIPProvider_AuthenticationAdd(auth_realm=LANG, auth_identity=sip:ivr@198.168.1.96, auth_username=ivr, auth_password=******)

151616.696 1804 fn VoIPProvider_AuthenticationAdd(auth_realm=LANG, auth_identity=sip:ivr2@198.168.1.96, auth_username=ivr2, auth_password=******)

 

151616.712 1804 fn VoIPProvider_Register(protocol=SIP, reg_server=198.168.1.75, reg_client=ivr@198.168.1.96, local_alias=ivr@198.168.1.96, sH323SupportedPrefixes=)

151616.712 1804 fn VoIPProvider_Register(protocol=SIP, reg_server=198.168.1.75, reg_client=ivr2@198.168.1.96, local_alias=ivr2@198.168.1.96, sH323SupportedPrefixes=)

 

151616.899 3268 ccValue==IPERR_OK (gc_ReqService registered a VoIP account)

151616.977 3268 ccValue==IPERR_OK (gc_ReqService registered a VoIP account)

Share this post


Link to post

wadelowe wrote:

 

I can make individual calls from each <CallerID> setting in the CallXML Options. Both extension do register and work inbound without any issues. The problem only occurs when I try to make more than 1 outbound call at the same time, it appears it uses the same <CallerID> value and ShoreTel only allows 1 call per extension at the same time. ShoreTel presents this as an extension not a multi-concurrency trunk. How can I set the system to have differenct <CallerID> tags for different ports? Can this be done through an XML or Database load with the calls divided into campaigns that are forced to only 1 outbound port?

 

I can confirm that the registration does work and all extensions are answered inbound and can be answered at the same time.

Share this post


Link to post

 

 

How can I set the system to have differenct <CallerID> tags for different ports? Can this be done through an XML or Database load with the calls divided into campaigns that are forced to only 1 outbound port?


Really the best solution is to change the setting in the IPPBX (in this case ShoreTel) for it to allow multiple outging calls for the same CallerID.
or just bypass the IPPBX and send VoIP calls direct to VoIP provider.

Why do you need to route the calls through the IPPBX ?



Using XML file load you can have each call set to use a different CallerID.
eg:

<OutDialEntry>
<PhoneNumber>5550001@198.168.1.95</PhoneNumber>
<ActivateTime>2011-09-24 06:30:00</ActivateTime>
<OnAnswerLive>d:\scripts\todays_specials.vgs</OnAnswerLive>
<OnAnswerMachine>d:\scripts\todays_specials_AM.vgs</OnAnswerMachine>
<RV>[ClientID]{123456}[PriceWidget]{125}[PriceDelivery]{7.50}</RV>
<CallerId>ivr@198.168.1.96</CallerId>
</OutDialEntry>
<OutDialEntry>
<PhoneNumber>5550002@198.168.1.95</PhoneNumber>
<ActivateTime>2011-09-24 06:30:00</ActivateTime>
<OnAnswerLive>d:\scripts\todays_specials.vgs</OnAnswerLive>
<OnAnswerMachine>d:\scripts\todays_specials_AM.vgs</OnAnswerMachine>
<RV>[ClientID]{123456}[PriceWidget]{125}[PriceDelivery]{7.50}</RV>
<CallerId>ivr2@198.168.1.96</CallerId>
</OutDialEntry>

But this is not the right solution when you want to ensure that only one call per CallerID is made at a time.
After all, when you need to load a large number of calls at some stage the calls made at the same time would share the same Caller ID.

One solution here would be to assign a unique CallerID to each Dialogic/HMP device - that way only calls made through that line device would carry that CallerID.

The version of VoiceGuide below lets you attach a default outgoing CallerID to each channel.

[old link removed]

Update to this version (install over the top of existing after stopping services) and the modify the Config.xml file to include a <CallerId> entry for each of the <Channel> entries.
Like this:

<Name>dxxxB1C1</Name>
<NetworkIf>iptB1T1</NetworkIf>
<Device_Media>ipmB1C1</Device_Media>
<Protocol>IP</Protocol>
<script>C:\Program Files\VoiceGuide\Scripts\Credit Card Payment\Credit Card Payment.vgs</Script>
<AllowDialOut>1</AllowDialOut>
<CallerId>ivr@198.168.1.96</CallerId>
</Channel>

<Channel>
<Name>dxxxB1C2</Name>
<NetworkIf>iptB1T2</NetworkIf>
<Device_Media>ipmB1C2</Device_Media>
<Protocol>IP</Protocol>
<script>C:\Program Files\VoiceGuide\Scripts\Credit Card Payment\Credit Card Payment.vgs</Script>
<AllowDialOut>1</AllowDialOut>
<CallerId>ivr2@198.168.1.96</CallerId>
</Channel>

etc.

Then load the calls without specifying any CallerID at call load time.

Please post VoiceGuide and WireShark traces (.ZIPed) if any issues are still encountered.

Share this post


Link to post

Unfortunately, I have no control over the ShoreTel IPPBX and we are not using a VoIP Provider. ShoreTel is VoIP internally, but we have a PRI for external call traffic. I am using the ShoreTel SIP Client to interface with Voiceguide instead of purchasing hardware from Dialogic and additional hardware ports from ShoreTel.

 

I had tested the XML dialer load method as described below and it does work. I would have to divide the call load among the channels into "port 1 campaign", Port 2 campaign", etc... It would be divided programatically outside of Voiceguide. The issue this presents is a potential call load imbalance between ports, otherwise it would work.

 

I downloaded the build you provided and setup the channels to work with the different <CallerID> and it works great. That is the best solution for me. I believe at this time it is all working and I can finish my testing and purchase the ports for production. Thanks for all your help.

Share this post


Link to post
I downloaded the build you provided and setup the channels to work with the different <CallerID> and it works great. That is the best solution for me. I believe at this time it is all working and I can finish my testing and purchase the ports for production. Thanks for all your help.

Thank you for confirming it is working as designed. Please let us know if we can assist with anything in the future.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×