The Dialogic® Brooktrout® Fax SDK Release 6.11 is the latest Brooktrout development kit providing feature rich capabilities to our partners. In this blog post, I will discuss a new feature and why it can help you.
When using ISDN, you would place a call out by sending what’s known as a Setup message. This message contains different sections called Information Elements (IEs). For example, there is an IE for the called party number (the number you’re dialing) and another IE for the calling party number (your “caller ID”) as well as some IE’s for administrative purposes.
The calling party number and called party number IE’s themselves contain other information as well as the actual numbers. The numbering type and numbering plan add additional information the ISDN switch uses when placing calls, mostly having to do with the destination being a national or an international one. The called party number and calling party number IE’s each have their own numbering type and numbering plan. Whether you need to change the numbering type and plan is up to your ISDN switch, but for the most part, the default value of “Unknown” is used for both.
Prior to SDK 6.10, the numbering type and numbering plan could be only set statically from callctrl.cfg using the “numbering_type” and “numbering_plan” parameters, respectively. With SDK 6.10, you can now set them from your application on a per call basis. This can be useful if your setup sends calls both nationally and internationally and ISDN switch requires different information when doing so. Further, you can now set the numbering type and numbering plan separately for the called party number IE and the calling party number IE in case your ISDN switch needs that done as well. Prior to this the numbering type and number plan were the same for both.
To set these parameters per call, your application would need to place calls with the API functions BfvCallSetup() and BfvCallWaitForComplete(). In BfvCallSetup(), you would select the value you want for each setting and OR it with "OVERRIDE_NUMBERING_FLAG". Below is a code snippet that shows an example of setting the various parameters.
BT_ZERO(args_cc); args_cc.phonenum = "5551212"; args_cc.call_protocol_code = CALL_PROTOCOL_FAX; args_cc.calling_party = "5555555"; args_cc.override_calling_type = ECC_NUM_TYPE_ABBREVIATED|OVERRIDE_NUMBERING_FLAG; args_cc.override_called_type = ECC_NUM_TYPE_NATIONAL|OVERRIDE_NUMBERING_FLAG; args_cc.override_calling_plan = ECC_NUM_PLAN_ISDN|OVERRIDE_NUMBERING_FLAG; args_cc.override_called_plan = ECC_NUM_PLAN_PRIVATE|OVERRIDE_NUMBERING_FLAG; args_cc.calling_party_presentation = ECC_PRES_RESTRICTED; args_cc.calling_party_screening = ECC_SCRN_USER_VERIFICATION_PASSED; BfvCallSetup(lp, &args_cc);
The values you can use for these settings are all located in ecclib.h (installed with the Brooktrout SDK under \brooktrout\boston\bfv.api\inc), e.g. "ECC_NUM_TYPE_ABBREVIATED" and "ECC_NUM_PLAN_ISDN".
Also, for the calling party number IE, there are two other parameters called Presentation and Screening which have to do with how the switch presents the calling party number. We didn’t add any new features for these parameters in SDK 6.10 – you’ve always been able to set them from your application if you wish – but for completeness, I’ll provide information on them here as well. In the above code snippet, the presentation gets set with args_cc.calling_party_presentation and the screening with args_cc.calling_party_screening. The available values for these are also located in ecclib.h. However, in order to set these two parameters dynamically, you need to set their respective callctrl.cfg parameters (“presentation” and “screening”) to “APP_DEFINED”. Only then will the settings being used from BfvCallSetup take effect.
There is more information in the Dialogic Brooktrout APIs Reference Manual as well in the description for BfvCallSetup().