Also find the attachment for Diva trace, please.
Thanks in advance.
hha
The traces are not from the same call I'm afraid. SoftIP is reporting that the transfer is not supported but as the same transfer works on any other SoftIP machine I would like to see simultaneous traces please so I can see what the specific issue is with your setup.
So please follow the following process. Delete the SDK trace, start the Diva trace running, zero the Diva trace by clicking on the X button. Then start my test app, just click Listen. Call into the test app, enter the destination number in the transfer field and press C.transfer.
After a few seconds stop and save the traces and post them here, thanks.
Hi Vic,
Find the attachment for Diva trace, please.
Regards,
Here is the attachment for SDK trace.
Many Thanks,
Thanks, now that I can see the SIP the problem is clear. Asterisk is replying to the transfer request with a failure message:
9:09:08.203 0 c 8 SM- >SIP/2.0 481 Call leg/transaction does not existWhen SoftIP gets this message it then tells your application that ECT is not supported.
I don't know if asterisk supports refer or consultation transfer, can you check this and also check the logs on the asterisk server to see if there is an indication of a problem. The same transfers work fine when used with SER or OnDo SIP Server.
Sorry for my late reply. While I was dealing this problem, I gotta move on to implement to other areas of my application. Now, time has reached to deal with it again.
Going back to the problem, I don't see any indication of a problem in the logs on the asterisk server. Is there any other possible cause, please?
Thank you in advance.
Vic,
How can I use "CallDeflection" or "SuperVisedTransfer" on Linux?
I've just downloaded diva-110.2534 (5.5 SU1 Beta) and don't see any functions for it? Is there any documentation that I can download for this?
Thanks,
Jeff
You should have the DivaSAPI.pdf included with the download, attached in case you don't have it, extensive documentation of transfers on page 116 and onwards.
For call deflection do a DivaBlindTransfer() with DivaTransferOptionCallDeflection set to true. Note this will only work if the telco/PBX you are connected to supports call deflection.
For supervised transfer there are various methods but I generally establish one call, Call1, then make the consultation call Call2, do IVR etc as required then when ready to make the transfer do DivaCompleteCallTransfer(call1,call2)
Thanks for the pointer to the pdf. It's there but never knew that. Just blind!
> For call deflection do a DivaBlindTransfer() with DivaTransferOptionCallDeflection set to true. Note this will only work if the telco/PBX you are connected to supports call deflection.
I tried this, but looks like telco doesn't seem to support this. Got DivaErrorNotSupported.
Sorry it look so long. I've trying without any success :(
> For supervised transfer ... establish one call, Call1, then make the consultation call Call2, do IVR etc as required then when ready to make the transfer do DivaCompleteCallTransfer(call1,call2)
Tried this as well, got it to complete the transfer, the 2nd call ringed, but when the call is picked up, there's no sound.
Here's the trace log. Note that I'm setting the option DivaCPT_NoHoldBeforeTransfer in DivaCompleteCallTransfer() without which will result in DivaErrorInvalidState.
Attached is the trace log.
8461.dssdk.log
Below is the output from my program doing the transfer. There's also one strange event DivaEventDataAvailable where Param1 becomes the Application handler instead of the usual DivaCall handler.
[Tue Apr 13 22:26:19.564] diva sdk version 5.5 compiled 2010/04/13 22:24:31 SGT[Tue Apr 13 22:26:19.589] hDA 2316f00[Tue Apr 13 22:26:19.590] pbx[Tue Apr 13 22:26:24.478] incoming 233ca30[Tue Apr 13 22:26:24.478] line 1 chan 1 type voice from - to 67486598[Tue Apr 13 22:26:24.478] pbx ok[Tue Apr 13 22:26:24.478] line 1 chan 1 type voice from - to 67486598[Tue Apr 13 22:26:24.478] answer voice[Tue Apr 13 22:26:24.478] call answered[Tue Apr 13 22:26:24.614] call connected 233ca30[Tue Apr 13 22:26:24.614] call connected 2[Tue Apr 13 22:26:24.630] data available. Param1 233ca30 Param2 100[Tue Apr 13 22:26:24.630] line 1 chan 1 type voice from - to 67486598[Tue Apr 13 22:26:26.120] send voice canceled 233ca30[Tue Apr 13 22:26:27.240] DTMF termination digit 233ca30[Tue Apr 13 22:26:27.240] transferring [96688381][Tue Apr 13 22:26:27.240] consultation call setup[Tue Apr 13 22:26:27.240] CallTransfer hDC=233ca30 hDC2=2349670[Tue Apr 13 22:26:27.240] call on hold 233ca30[Tue Apr 13 22:26:27.240] dialing hDC2=2349670[Tue Apr 13 22:26:27.240] call dialing 88223388[Tue Apr 13 22:26:27.240] Param1 88223388 Param2 1[Tue Apr 13 22:26:27.396] call connected 233ca30[Tue Apr 13 22:26:27.396] setup transfer completed 233ca30[Tue Apr 13 22:26:27.396] hold completed 233ca30[Tue Apr 13 22:26:27.396] complete xfer hDC=233ca30 hDC2=2349670[Tue Apr 13 22:26:27.396] transferred.
[Tue Apr 13 22:26:27.628] Param1 88223388 Param2 0
[Tue Apr 13 22:26:27.628] call info 88223388[Tue Apr 13 22:26:27.628] call proceeding[Tue Apr 13 22:26:29.397] Param1 88223388 Param2 0[Tue Apr 13 22:26:29.397] call info 88223388[Tue Apr 13 22:26:29.397] call ringing[Tue Apr 13 22:26:35.659] call connected 88223388[Tue Apr 13 22:26:35.662] call connected 2[Tue Apr 13 22:26:35.672] data available. Param1 88223388 Param2 100[Tue Apr 13 22:26:35.672] can't get call info. Param1 = hAC[Tue Apr 13 22:27:23.449] call disconnecting[Tue Apr 13 22:27:23.449] Param1 88223388 Param2 0[Tue Apr 13 22:27:23.449] call info 88223388[Tue Apr 13 22:27:23.558] Param1 88223388 Param2 0[Tue Apr 13 22:27:23.558] call info 88223388[Tue Apr 13 22:27:23.558] call disconnected[Tue Apr 13 22:27:23.558] call disconnected 2[Tue Apr 13 22:27:23.558] disconnected 0[Tue Apr 13 22:27:23.558] ready[Tue Apr 13 22:27:28.428] call disconnecting[Tue Apr 13 22:27:28.428] Param1 233ca30 Param2 0[Tue Apr 13 22:27:28.428] call info 233ca30
[Tue Apr 13 22:27:28.550] Param1 233ca30 Param2 0[Tue Apr 13 22:27:28.550] call info 233ca30[Tue Apr 13 22:27:28.550] call disconnected[Tue Apr 13 22:27:28.550] call disconnected 2[Tue Apr 13 22:27:28.550] disconnected 0[Tue Apr 13 22:27:28.550] ready
From the trace you can see that your telco does not support Hold so transfer is also unlikely to work. Its often the case that telcos don't support call transfers, generally these are available when you are connected to PBX but you can check with your telco and they may be able to tell you what is available. You may need to purchase additional services such as supplementary services on the line to enable this.
A config change you can do on the Diva board is to enable ECT emulation. This works by joining the two calls together on the Diva board so you get an audio path. It then tries to do the call transfer and if the call transfer fails it will keep the calls joined together. The advantage is that you can use the same transfer code for all your deployments, and if you are connected to a PXB that supports transfer the calls will be dropped from the board but they will still be connected through the PBX so can still talk. If you are connected to a telco or PBX that does not support transfer then the 'line interconnect' on the Diva board means that the two parties can still talk and your application doesn't have to do anything diffferent, but you will be using two channels on the board of course.
To enable ECT emulation open the Diva configuration manager, select View/Advanced and then enable the ECT Emulation paramter and do File/Activate and reboot if requested.
> From the trace you can see that your telco does not support Hold so transfer is also unlikely to work. Its often the case that telcos don't support call transfers.
I've asked my telco (SingTel) and I was told the ISDN BRI here supports HOLD, but it does not seems so. Sales talk.
> A config change you can do on the Diva board is to enable ECT emulation. This works by joining the two calls together on the Diva board so you get an audio path.
Great! This ECT does the job! DivaBlindCallTransfer() now works, but only with DivaCPT_NoHoldBeforeTransfer set. Otherwise DivaEventTransferCompleted will contains DivaErrorNotSupported. Still having problem with consultation call setup which still gives DivaErrorInvalidState ... but I supposed that's due to my telco not supporting "HOLD" ... just wonder why DivaBlindCallTransfer() works but notDivaSetupCallTransfer() ... DivaCompleteCallTransfer() even with the same option DivaCPT_NoHoldBeforeTransfer set.
Now, I'm trying to solve another problem. It seems SIPControl is "monopolizing" calls and not allowing my application to take control of the incoming calls. DivaEventCallDisconnected with status DivaDRAnotherAppGotThatCall. If I kill SIPControl, my app works just fine. How to setup SIPControl to ignore to a particular called number? I tried to specify this under the SIPControl config -> Routing -> PSTN to SIP -> Conditions -> "Called Number" -> <my number to be passed to my app> ... but that doesn't seem to work.
Thanks again,
Good to hear that ECT emulation works. I think you are correct and the hold problem is causing the issue with the consulataion call transfer. Try doing this :
Call 1 is connected.
Create the consulation call and dial it yourself.
When it is connected or when you are ready to transfer just issue DivaCompleteCallTransfer(call1,call2) with option NoHoldBeforeTransfer set.
So you don't use the SetupCallTransfer function.
The current version of SIPcontrol does grab all the board resources, it is supposed to change in the next major release due out in July sometime. There is a workaround for the current version, if you contact support and reference case C78034 they should be able to help you get the update and config details.
>Try doing this :
> Call 1 is connected.
> Create the consulation call and dial it yourself.
> When it is connected or when you are ready to transfer just issue DivaCompleteCallTransfer(call1,call2) with option NoHoldBeforeTransfer set.
> So you don't use the SetupCallTransfer function.
Tried. "No sound" ... can't hear from both ends. But blind transfer works just fine ... I can hear and talk on both ends.
Same problem as previously tested using SetupCallTransfer() ... DivaCompleteCallTransfer() with NoHoldBeforeTransfer set. (sorry for the confusion, previous reply was incorrect ... the transfer was fine but "no sound on both ends" when NoHoldBeforeTransfer is set, and when unset will result in DivaErrorInvalidState).
> The current version of SIPcontrol does grab all the board resources, it is supposed to change in the next major release due out in July sometime. There is a workaround for the current version, if you contact support and reference case C78034 they should be able to help you get the update and config details.
This is great info. I'll talk to the local support tomorrow!
Thanks again for your very knowledgable help!
Jeff.
Can yuo post a SDK trace and I'll see if there is anything obvious with the no - sound issue.
I'm not sure what is going wrong when you send it, can you send me these traces and I'll take a look.
SDK trace:
Run config.exe, found in the SDK directory Basic\bin - click on the logging tab.
In the file field Browse to a directory and enter a filename such as SDKTrace.txt.
Then in both of the Level drop down boxes select Debug Messages Level 2.
Now click on apply.
Network trace :
Run Start/Programs/Dialogic Diva/Diva Server Diagnostic tool.
Click on the picture of the card in the left panel, then click on the B (for basic) button in the toolbar. Now click on the CAPI service in the left panel and again click on B button in toolbar. Now click on the red circle button to start trace, click on red X to clear trace.
Now start your application(app must be started after the SDK trace is started) and make the call attempt.
After the failure go back to the Diva Server diagnostic tool and click on the black square button to stop the trace, then click on the 'eye' button to open the trace. Save the trace.
Go back to the config.exe, click on view trace, and save the trace with a different filename (original is locked).
> Can you post a SDK trace and I'll see if there is anything obvious with the no - sound issue.
> I'm not sure what is going wrong when you send it, can you send me these traces and I'll take a look.
I've made good progress trying a couple things now that I've blink transfer working. I tried your suggestion on DivaDial() + DivaCompleteCallTransfer() and completing the call without DivaSetupCallTransfer() and finally got voice on both-end. It didn't work before because I issued DivaCompleteCallTransfer() immediately after DivaDial().
The fix to issue DivaCompleteCallTransfer() during the call progress event DivaCallStateRinging.
To make DivaSetupCallTransfer() works, the fix is to issue DivaDial() during the event DivaEventSetupTransferCompleted and not in DivaCallStateOnHold.
I called Dialogic support center and got the executable and config files for C78034. Problem is the exe is for Windows and not Linux! Is there one for Linux? I've downloaded eicon_9.5-110-49 and that doesn't seem to contain the fix.
Build says ...
Diva SIPcontrol for Linux 2.1 Revision 2.1.2.112 started. Build: Diva SIPcontrol for Linux sip/sipcontrol/2.1/linux 110-112 (Apr 9 2010 10:09:03)
Also, I just realized that all the build were on 32-bit Linux. Any plan for 64-bit?
Thanks for all your great help!