Author Message
SteVio
Joined: Dec 4, 2013
Messages: 22
Offline
Hello All,

I have a question regarding the manipulation of the caller number with outgoing calls.
With our old ISDN trunk it was possible with an uui starting with "*!" followed by the number send to the callee.

I test the same code with our new SIP Trunk and it does not work.

Is this feature not supported with SIP?

Regards

Stefan
MartinFlynn
Joined: Nov 30, 2009
Messages: 1922
Offline
SIP support for SA8481 is described in this FAQ:

https://www.devconnectprogram.com/site/global/products_resources/avaya_aura_application_enablement_services/support/faq/tsapi/index.gsp#790

Martin
SteVio
Joined: Dec 4, 2013
Messages: 22
Offline
Hi Martin,

thanks for the answer.

The special application is activ and also the SM Patch descripted in:

https://support.avaya.com/ext/index?page=content&id=SOLN305982

is installed.

But it does not work. We see the UUI in the sip trace but it is not used to set the "from" field in SIP.

With our old ISDN trunk something like this:



LucentV11Address address = (LucentV11Address) provider.getAddress("xxx");
LucentV5Terminal terminal = (LucentV5Terminal) provider.getTerminal("xxx");
UserToUserInfo uui = new UserToUserInfo("*!xxxxxx");
LucentV7Call call = (LucentV7Call) provider.createCall();
call.connect(terminal, address, "yyy", false, uui);



Works.

Sould this also works with SIP?


Regards

Stefan
MartinFlynn
Joined: Nov 30, 2009
Messages: 1922
Offline
It looks like you are using the old UserData format which was for ISDN & H.323 trunks only. Use the scheme described in the FAQ.

Martin
SteVio
Joined: Dec 4, 2013
Messages: 22
Offline
I test different UUI's as string and byte with the help of the faq respectively that what I am understand from that, but with no success.

Could you give me a working example for the Jtapi or DMCC SDK?

Stefan
MartinFlynn
Joined: Nov 30, 2009
Messages: 1922
Offline
I can't find any java code but the following works with the DMCC .Net SDK. In this case, 40502 calls out over a SIP trunk and the Alternate-CLI is set to 9702221234. There is also some UUI.


// MF test SA8481 SIP
byte presentation = 1;
byte numberType = 0x21;
byte pd = 0x10;
String realCallingNumber = "40502:CM132::0";
String calledNumber = "82240501:CM132::0";
String newNumber = "9702221234";
byte[] uui = { 0x31, 0x32, 0x33 };

ThirdPartyCallController.MakeCallParameters prm = new ThirdPartyCallController.MakeCallParameters();
ThirdPartyCallController.MakeCallPrivateData prv = new ThirdPartyCallController.MakeCallPrivateData();

// Size of buffer needed
int numberLen = newNumber.Length;
int uuiLen = uui.Length;
int byteLen = 7 + numberLen + uuiLen;
int ieLen = 5 + numberLen + uuiLen;
int numSectionLen = 2 + numberLen;

byte[] ba = new byte[byteLen];
int count = 0;

ba[count++] = 0x7E;
ba[count++] = (byte)ieLen;
ba[count++] = pd;
ba[count++] = (byte)numSectionLen;
ba[count++] = presentation;
ba[count++] = numberType;

for (int i = 0; i < numberLen; i++)
{
ba[count++] = (byte)newNumber[i];
}

ba[count++] = (byte)uuiLen;
for(int i = 0;i < uuiLen;i++)
{
ba[count++] = uui[i];
}

prm.UserData = new ThirdPartyCallController.UserData(ba, byteLen);
prm.CalledDirectoryNumber = calledNumber;
prm.CallingDevice = realCallingNumber;
try
{
serviceProvider.getThirdPartyCallController.MakeCall(prm, null);
}
catch (Exception exc)
{
MessageBox.Show(exc.Message);
}
SteVio
Joined: Dec 4, 2013
Messages: 22
Offline
Hi Martin,

Thanks a lot!

With your help, I was able to convert the code to Java and JTAPI (the interessing part with the bytes are almost the same code ;) ) and also test it successfully.

If anyone needs the example in java and with jtapi:


LucentV11Address address = (LucentV11Address) lucentV11Provider.getAddress("CalleeHere");
LucentV5Terminal terminal = (LucentV5Terminal) lucentV11Provider.getTerminal("CalleeHere");
LucentV15Call call = (LucentV15Call) lucentV11Provider.createCall();

byte presentation = 1;
byte numberType = 0x21;
byte pd = 0x10;
String newNumber = "NewNumberHere";
byte[] uui = new byte[]{0x31, 0x32, 0x33};

int numberLen = newNumber.length();
int uuiLen = uui.length;
int byteLen = 7 + numberLen + uuiLen;
int ieLen = 5 + numberLen + uuiLen;
int numSectionLen = 2 + numberLen;

byte[] ba = new byte[byteLen];
int count = 0;
ba[count++] = 0x7E;
ba[count++] = (byte) ieLen;
ba[count++] = pd;
ba[count++] = (byte) numSectionLen;
ba[count++] = presentation;
ba[count++] = numberType;

for (int i = 0; i < numberLen; i++) {
ba[count++] = (byte) newNumber.charAt(i);
}

ba[count++] = (byte) uuiLen;
for (int i = 0; i < uuiLen; i++) {
ba[count++] = uui[i];
}
UserToUserInfo userToUserInfo = new UserToUserInfo(ba);

call.connect(terminal, address, "calledNumberHere", false, userToUserInfo);


Regards

Stefan
Go to:   
Mobile view