Use Always Connected Feature via ITSP (Carrier)
What is “Always Connected” feature?
Always connected with registered devices (Normal case) :
In order to establish call connection, the Media Server process in Brekeke PBX pretends UA and send INVITE messages to Agent’s phones. The call sessions between Brekeke PBX and agent’s phones are kept until agents log out the Brekeke CCS.
In normal cases, based on the Register information in the bundled Brekeke SIP Server (BSS), INVITE messages can be sent to the devices.
Always connected with mobile phones via ITSP:
However in the cases to use “Always connected” feature with the mobile phones via ITSP, because the Media Server doesn’t know the route to the destination (ITSP) and Authentication information, connections can NOT be established.
* The information about ITSP and Authentication is generally stored as some ARS routes at PBX.
Solution:
Case 1. Authentication is NOT required by ITSP.
By adding the following Dial plan rule, INVITE messages can be sent to the correct destination (ITSP).
[Matching Patterns]
$request = ^INVITE
$localhost = ^true
$port = ^5056$
$geturi(To) = sip:(.+)@
[Deploy Patterns]
To=sip:%1@<itsp domain>
From=sip:<account>@itsp domain>
X-PBX-Param: <empty>
Case 2. Authentication is required by ITSP.
Generally, authentication information and routing information to ITSP are stored as some ARS routes. Therefore in order to get those information, the INVITE messages coming from Media server should be forwarded to PBX core by the following Dial Plan rule at the bundled Brekeke SIP Server (BSS).
Step 1. Add the dial plan rule.
[Matching Patterns]
$request = ^INVITE
$localhost = ^true
$port = ^5056$
[Deploy Patterns]
$target=127.0.0.1:5052
Also for security enhancement, we recommend to set the following dial plan rule which declines spoofing packets.
[Matching Patterns] $request = ^INVITE $localhost = ^false X-PBX-Param = ^pin$ [Deploy Patterns] $action = 603
Step 2. At the PBX, set the following ARS IN route to allow returned INVITE messages.
Patterns - IN [Matching Patterns] To: sip:(.+)@ Plugin 1: sipheader Param 1: X-PBX-Param Return 1: ^pin$ [Deploy Patterns] From: pin&f1 Custom: &action.type=pin
Step 3. At the PBX, add the following ARS OUT route for sending INVITE messages to ITSP.
It may be a good idea to copy an existing ARS OUT pattern for ITSP, and edit the copied OUT pattern.
Patterns - OUT [Matching Patterns] To: sip:([0-9]{10,20})@ Plugin 1: prop Param 1: action.type Return 1: ^pin$ [Deploy Patterns] <Enter Connection Info for your ITSP>
*1. In above examples, we assumed that Media Server’s port is 5056 (default). You can check actual Media Server’s port at PBX >[SYSTEM] > [Status] > [Media Server] >[Listen port(out)].