Hi,
We want to make a call from one port to another port on Dialogic Diva board as offline testing framework.
We have a dialogic v4-pri board and we want to try the SDK.
First we try change the setting to make the led status green. By default when we plug the E1 cable led is off. When we change interface type from 'point to point' to 'leased' the led is green.
We try run VoiceInSimple and VoiceOutSimple to run the test. VoiceInSimple will listen to line device 2. When We initialize call, VoiceInSimple will detect DivaEventIncomingCall event but never go to DivaEventCallConnected. It immediately go to DivaEventCallDisconnected.
Is it possible to do offline testing by using one line to initiate call to another line as we did? Suppose we do not have E1 connection from telco and using ISDN line will be expensive for testing. How we can do offline test ? I suspect there is something wrong with the setting. How we can make above scenario work?
Thank you.
You can use this conenction type but you need to configure one port as TE (Terminal) end and one port as NT(Network end) and then use a cross over cable. This page here explains the concept of TE and NT.
http://www.dialogic.com/support/helpweb/divasvr/NTModeConfiguration.aspx
The cable you need is a PRI crossover, PRI use 4 wires, 1,2,3 & 4. To make a crossover cable you need to do this:
1 -------- 4
2--------- 5
4 --------- 1
5 ---------2
Then run any SDK application as normal. The only point to note is that by default the Diva card expects 3 digits CPN so when you call you must use at least 3 digits, eg 123 or 555 etc.
Thank you,
Apparently we miss the TE and NT concept. It working now.
We make an asterisk based PBX to divide E1 channel into 30 analog phone (Right now we only use 2 phone, one with extension 100 and another 101). We are able to run DTMFMenu example (in C#) but we can't connect to another phone using BlindCallTransfer (operator option in DTMFMenu example ) (for example from 101 to 100).
We can make connection directly (analog phone to analog phone). And also there is Interconnect example from Component API and we are able to interconnect between two phone line.
The problem is how to make it work from DTMFMenu example as we build our application based on it (DTMF menu is based on DivaServer API and Interconnect sample based on DivaComponent API).
This is what we try :
case State.ConnectingOperator: //BlindCallTransfer("100"); { try { MyCall call_connect = new MyCall(m_instance, this.SdkHandle); call_connect.Connect(m_instance, "100", DSAPI.CallType.Voice, DSAPI.LINEDEV_ALL); this.LIConnect(call_connect); } catch (DSAPIException e) { Console.WriteLine(e.Message); } }
With the constructor
public MyCall( InstanceBase Inst, IntPtr hSdk) : base(hSdk) { m_instance = Inst; }
Best Regards,
Arif.
Can you explain your setup in more detail please ? Are you using the back to back connection or are you connecting the phones from a E1 connecting to asterisk ?
The different call transfers (blind or consultation) need all the devices to support what you are tyring to do, so if you want to do a blind transfer then the pbx needs to support blind transfer. Usually a blind transfer is used with analog connections and involves putting the first call on hold and then calling the destination using the same channel and then doing a hookflash to 'join' the two calls together. This can work on ISDN but needs the PBX to understand what you are doing so you will need to understand the capabilities of the device you are connecting to.
Line interconnect always works because the Diva card is joining thetwo channels together so no support is needed from the PBX etc.
We will check our asterisk system capabilities.
Our current setup is like this :
[ ] [ ]
[ Dialogic server ] ---- E1 ---- [ Asterisk pbx ] ------- [ analog phone (ext 100) ]
[ ] [ ] ------- [ analog phone (ext 101) ]
We initiate call from 101 to the IVR on Dialogic server and when we press '#' we want the call to be transferred to 100. This is one offline testing before we can verify that our E1 connection from telco is working.
Another thing is the interconnect code I've shown before is not working. The working one is Interconnect example from http://www.dialogic.com/support/training/slideshow2.asp?go=section&c=dsapivbn&s=1000&language=cs that we modify to connect incoming call to ext. 100. We will investigate this further. Is there any difference between DivaServer API and Diva Component API?
In this configuration when you try to do a BlindTransfer the Diva card will send a ISDN Hold request to asterisk. If asterisk does not support this (which I imagine it will not) then the transfer will fail.
To explain the different APIs.
The Diva API (dssdk.dll) is the api used by C/C++ applications. It is the core of the SDK and the Component API (DivaSDK.dll) which is a set of ActiveX components for use with VB or .Net applications(VB.Net or C#) uses the dssdk.dll. The Component API has a subset of the Diva API but gives you 95% + of the available features of the Diva API.
The Diva API for .Net is a managed wrapper for the Diva API so desigend for use by C# applications. It gives you access to all the Diva API functions through a managed interface and we also provide a sample Framework which you can extend if required.
The SDk documentation gives you a detailed overview of the architecture and purpose of the different apis.