Brazilian E1 R2 Double Answer Feature

Overview 

The Brazilian E1 R2 protocol contains a sequence of signaling bit patterns called 'double answer'. The 'double answer' allows for the originating side to alert the destination and allow time for the receiver of the call to reject or accept a collect call (toll). If the receiver of the call decides to accept and answer the call, a double answer is generated within a specified time. The receiver is then billed for the incoming call. If the receiver does not want to answer the call, a double answer is not generated and the call is disconnected. 

Technical details

There are four PDK parameters that are part of this feature. The four parameters are documented below:

Parameter 1:   CDP_DOUBLE_ANSWER_FLAG 

Inbound (Only for Brazil R2) 

Set to 1 to enable the double answer feature that is used to block Collect calls. Set to 0 to disable the double answer feature. 

See parameter CAS_PULSE_DOUBLE_ANSWER for description of double answer 

All BOOLEAN_t CDP_DOUBLE_ANSWER_FLAG = 1

Parameter 2:   CDP_REANSWER_TIMEOUT 

Outbound (Only for Brazil R2) 
Units: milliseconds 

This parameter prevents the outbound side from being disconnected on receiving the DOUBLE ANSWER signal from the remote in the CONNECTED state. 

If set to non-zero, in the CONNECTED state, reception of the DISCONNECT signal (CAS_CLEARBWD) from the remote will not cause a transition to the DISCONNECTED state immediately. 

The protocol will wait for the time specified by this parameter before sending the DISCONNECTED event to the application. If during this period, the Answer (CAS_ANSWER) signal is received, no disconnected event will be reported to the application and the protocol will remain in CONNECTED state. 

If this parameter is 0, DISCONNECTED is reported immediately to the application on receiving the remote DISCONNECT (CAS_CLEARBWD) line signal. 

Note: A typical value for this parameter in the Brazil R2 protocol supporting the double answer feature should be slightly more than 2000 milliseconds (see the description of the CAS_PULSE_DOUBLE_ANSWER parameter);  for instance: 2500 milliseconds. 

All INTEGER_t CDP_REANSWER_TIMEOUT = 2500

Parameter 3:  CAS_PULSE_DOUBLE_ANSWER 

Inbound (Only for Brazil R2) 

When answering a call, this signal is sent to the CO to indicate that all collect calls are to be rejected.  This is only performed if the CDP_DOUBLE_ANSWER_FLAG is set to 1. 

The default double answer signal comprises the following: 

An initial answer signal with signaling bits AB=01 for 1000 msec (signaling bits ABCD=0101),
then a backward clear signal (signaling bits AB=11) for 2000 msec (signaling bits ABCD=1101), 
and finally a return to answer state with signaling bits AB=01 (signaling bits ABCD=0101). 

Argument number 8 of this parameter is the time between two answers and is user modifiable. 

Arguments 7 and 9 should be set, respectively, to approximately 90% and 110% of argument number 8 respectively. 
 

All CAS_SIGNAL_PULSE_t CAS_PULSE_DOUBLE_ANSWER = 0101,1101,1000,0,0,0,1800,2000,2200

 

NOTES: 

  • the default values in the cdp file do not show the third parameter set to 1000. This value indicates that the first answer should be held for 1 second.

  • the entire sequence is now 1 second for the first answer + 2 seconds for the clear backward. 

  • the outbound side must wait for at least 3.5 seconds for this sequence to complete.

Parameter 4:  CDP_RECV_CALL_EVENT_SENT_WITH_FIRST_ANSWER

Inbound (Only for Brazil R2) 

If the CDP_DOUBLE_ANSWER_FLAG is 0 then this parameter is ignored. 

If this flag is set to 1 (true) the call state will be changed to CONNECTED after the first answer; otherwise it will changed after second answer. 
 

Call examples 

  1. Outbound side expected to connect.

All BOOLEAN_t CDP_DOUBLE_ANSWER_FLAG = 1 
All INTEGER_t CDP_REANSWER_TIMEOUT = 2500 
All CAS_SIGNAL_PULSE_t CAS_PULSE_DOUBLE_ANSWER = 0101,1101,0,0,0,0,1800,2000,2200 

[02/12 14:36:26.890] B0 L2 T1 Rx=1001 Tx=1101 +36390 
[02/12 14:36:26.921] B0 L2 T1 Rx=1001 Tx=1101 +31 
[02/12 14:36:27.078] B0 L2 T1 Rx=1001 Tx=1101 +157 
[02/12 14:36:27.187] B0 L2 T1 Rx=1001 Tx=1001 +109 
[02/12 14:36:27.281] B0 L2 T1 Rx=1001 Tx=1001 +94 
[02/12 14:36:27.375] B0 L2 T1 Rx=1001 Tx=0001 +94      // Tx – line seize 
[02/12 14:36:27.468] B0 L2 T1 Rx=1101 Tx=0001 +93     // Rx – Line Seize Ack 
[02/12 14:36:30.734] B0 L2 T1 Rx=0101 Tx=0001 +3266 // Rx – Fist answer signal 
[02/12 14:36:30.796] B0 L2 T1 Rx=1101 Tx=0001 +62     // Rx – clr bkwd for 2 sec 
[02/12 14:36:32.781] B0 L2 T1 Rx=0101 Tx=0001 +1985 // Rx – Second answer 

 

  1. Outbound side expected to disconnect. Note that the timeout is a shorter time than the double answer pattern. 

All BOOLEAN_t CDP_DOUBLE_ANSWER_FLAG = 1 
All INTEGER_t CDP_REANSWER_TIMEOUT = 3500 
All CAS_SIGNAL_PULSE_t CAS_PULSE_DOUBLE_ANSWER = 0101,1101,0,0,0,0,3800,4000,4200 

[02/12 14:50:43.000] B0 L2 T1 Rx=1001 Tx=1001 +94 
[02/12 14:50:43.109] B0 L2 T1 Rx=1001 Tx=0001 +109   // Tx - originates line seize signal 
[02/12 14:50:43.203] B0 L2 T1 Rx=1101 Tx=0001 +94     // Rx - Seize Ack received 
[02/12 14:50:46.531] B0 L2 T1 Rx=0101 Tx=0001 +3328 // Rx - First answer pattern 
[02/12 14:50:46.593] B0 L2 T1 Rx=1101 Tx=0001 +62     // Rx – Clear Bkwd waiting for 
[02/12 14:50:50.109] B0 L2 T1 Rx=1101 Tx=1001 +3516 // Tx – Outbound side times out 
[02/12 14:50:50.234] B0 L2 T1 Rx=1101 Tx=1001 +125   // Tx - Call is dropped 

Application level behavior 

 

This feature has the capability to generate the GCEV_ANSWER event at the first answer signal or at the second answer signal. 

gc_MakeCall ------------------> 
GCEV_ALERTING <----- 
------------------> GCEV_OFFERED 
<----------------- gc_AnswerCall 
<----------------- GCEV_ANSWERED after first or second signal 

This feature also shows a slighty different behavior than normal when a call is rejected (not answered). Note that the application will receive a GCEV_CONNECTED followed by an immediate GCEV_DISCONNECT. 

gc_MakeCall ---------------------------> 
GCEV_ALERTING<------------- 
---------> GCEV_OFFERED 
**** Double answer is not received 
GCEV_CONNECTED<--------- 
GCEV_DISCONNECTED <---

 

Return to Documentation Home I Return to Sangoma Support