FR17117 - SIP RTP reINVITE after T.38 Reject

Target release6.7.0000-1
Epic

 

 

Document statusAPPROVED
Document owner

Greg Trogani (Deactivated)

Designer
Developers
QA

 

Revision History:
Document state can be one of Working Draft; Final Draft; Approved; Obsolete

Version

Author

Date

State

Description of Changes

0.1

Gregory Trogani

06/13/2014

Working Draft

Initial version.

0.2

Gregory Trogani

07/07/2014

Final Draft

Incorporated comments from initial review.

0.3

Gregory Trogani

07/17/2014

Approved

Fixed minor typos.
Reworded requirement RID#10 to clarify requirement.

 

Terminology

The verb "shall" indicates the requirement is mandatory for implementation.
The verb "may," "might" and "should" indicate the text is recommendation and/or optional for implementation.
The verb "will" expresses a future expectation of a requirement, or is used to reference details provided for informational purposes
h8. Acronyms

Acronym

Description

API

Application Programming Interface

BFV

Boston Fax and Voice API

SIP

Session Initiation Protocol

 

Product Issue Description

OpenText, a Dialogic Brooktrout customer, has reported that G.711 Fallback fax processing doesn't work when interworking the Dialogic Brooktrout SIP products with an Optus SIP server in the Optus Evolve IP network. As Optus is the second largest telecommunication company in Australia and there are a significant number of SIP endpoints in the Optus network that do not support T.38, OpenText has requested that the Dialogic Brooktrout SIP products provide support for a G.711 Fallback fax processing mode where, if a T.38 SIP reINVITE transmitted by the Dialogic Brooktrout SIP stack is rejected by a remote SIP endpoint, the Dialogic Brooktrout SIP stack transmits a SIP reINVITE specifying the G.711 RTP settings previously negotiated in order to allow the fax to be transferred in G.711 Passthrough mode.

Overall Feature Description

The current implementation of the Dialogic Brooktrout SIP products provides support for G.711 Fallback fax processing via the fax_transport_protocol parameter in the callctrl.cfg configuration file. When the fax_transport_protocol parameter is set to a value of t38_first, if a SIP T.38 reINVITE transmitted by the Dialogic Brooktrout SIP products is rejected by a remote SIP endpoint, the fax transfer will continue in G.711 fax passthrough mode using the RTP codec settings negotiated at the beginning of the SIP call without transmitting a SIP RTP reINVITE.
Feature Request FR17117 will provide support to allow Dialogic Brooktrout SIP products to successfully transfer faxes with SIP endpoints in the Optus Evolve IP network that don't support T.38 by introducing a new parameter to the callctrl.cfg configuration file. This new parameter will enable/disable functionality to allow a SIP RTP reINVITE to be transmitted by the Dialogic Brooktrout SIP products when a T.38 SIP reINVITE transmitted by the Dialogic Brooktrout SIP stack is rejected.
Feature Request FR17117 will also provide the ability for BFV API applications to enable/disable this new functionality at runtime. Typically, a T.38 SIP reINVITE is transmitted by the SIP endpoint that receives a call. In this case, the processing to transmit the T.38 SIP reINVITE is initiated by the Dialogic BFV API Fax functions. However, while less common, it's also possible for the T.38 SIP reINVITE to be transmitted by the SIP endpoint that originated the call. In this situation, the processing to transmit the T.38 SIP reINVITE is initiated by the Dialogic BFV API Call Control functions. Therefore, in order to support FR17117 functionality for both inbound and outbound calls, the following BFV API functions will be modified to allow applications to specify whether FR17117 functionality should be enabled, disabled or default (Note: Default FR17117 functionality will be defined by the value of the new parameter added to the callctrl.cfg file as described above) via a new field added to the args_cc, args_telephone and args_fax structures
BFV API Call Control Functions:

  • BfvCallSetup()
  • BfvLineOriginateCall()



BFV API Fax Functions:

  • BfvFaxBegin()
  • BfvFaxReceive()
  • BfvFaxBeginReceive()
  • BfvFaxBeginRaw()
  • BfvFaxBeginTiff()

 

Assumptions

  • When sending a SIP RTP reINVITE after a SIP T.38 reINVITE is rejected by a remote SIP endpoint, the Dialogic Brooktrout SIP products do not need to modify the RTP codec settings from what was used to negotiate the initial SIP call.

 

Feature Limitations, Caveats, or Restrictions

  • None

 

Customer Use-Cases


Use Case #1 – FR17117 Feature Support Enabled at Initialization (Inbound Call)

  1. FR17117 feature support is enabled in the callctrl.cfg configuration file
  2. Fax transport protocol parameter in callctrl.cfg is set to t38_first
  3. Media Renegotiate Delay Inbound parameter in callctrl.cfg set to default value of 1000
  4. Inbound SIP call is received by Dialogic Brooktrout SIP product
  5. BfvFaxReceive() called by BFV API application with new field in args_fax structure set to default FR17117 functionality.
  6. SIP T.38 reINVITE transmitted to remote SIP endpoint
  7. Remote SIP endpoint rejects SIP T.38 reINVITE with SIP 488
  8. SIP RTP reINVITE transmitted to remote SIP endpoint
  9. Remote SIP endpoint accepts SIP RTP reINVITE
  10. Fax successfully transferred in G.711 Fax Passthrough mode


Use Case #2 – FR17117 Feature Support Enabled at Initialization (Outbound Call)

  1. FR17117 feature support is enabled in the callctrl.cfg configuration file
  2. Fax transport protocol in callctrl.cfg is set to t38_first
  3. Media Renegotiate Delay Outbound parameter in callctrl.cfg set to value of 1000
  4. Outbound SIP call is initiated by Dialogic Brooktrout SIP product
  5. BfvCallSetup() called by BFV API application with new field in args_cc structure set to default FR17117 functionality.
  6. SIP T.38 reINVITE transmitted to remote SIP endpoint
  7. Remote SIP endpoint rejects SIP T.38 reINVITE with SIP 488
  8. SIP RTP reINVITE transmitted to remote SIP endpoint
  9. Remote SIP endpoint accepts SIP RTP reINVITE
  10. Fax successfully transferred in G.711 Fax Passthrough mode


Use Case #3 – Runtime FR17117 Feature Support (Inbound Call)

  1. FR17117 feature support is disabled in the callctrl.cfg configuration file
  2. Fax transport protocol in callctrl.cfg is set to t38_first
  3. Media Renegotiate Delay Inbound parameter in callctrl.cfg set to default value of 1000
  4. Inbound SIP call is received by Dialogic Brooktrout SIP product
  5. BfvFaxBeginReceive() called by BFV API application with new field in args_fax structure set to enable FR17117 functionality.
  6. SIP T.38 reINVITE transmitted to remote SIP endpoint
  7. Remote SIP endpoint rejects SIP T.38 reINVITE with SIP 606
  8. SIP RTP reINVITE transmitted to remote SIP endpoint
  9. Remote SIP endpoint accepts SIP RTP reINVITE
  10. Fax successfully transferred in G.711 Fax Passthrough mode


Use Case #4 – Runtime FR17117 Feature Support (Outbound Call)

  1. FR17117 feature support is disabled in the callctrl.cfg configuration file
  2. Fax transport protocol in callctrl.cfg is set to t38_first
  3. Media Renegotiate Delay Outbound parameter in callctrl.cfg set to value of 1000
  4. BfvLineOriginateCall() called by BFV API application with new field in args_telephone structure set to enable FR17117 functionality.
  5. SIP T.38 reINVITE transmitted to remote SIP endpoint
  6. Remote SIP endpoint rejects SIP T.38 reINVITE with SIP 606
  7. SIP RTP reINVITE transmitted to remote SIP endpoint
  8. Remote SIP endpoint accepts SIP RTP reINVITE
  9. Fax successfully transferred in G.711 Fax Passthrough mode

 

Architectural Description

N/A

Requirements

 

RID#

Description

1

FR17117 (SIP RTP reINVITE after T.38 Reject) feature support shall be available on all versions of operating systems supported by the Dialogic Brooktrout SDK 6.7.1 release.

2

FR17117 feature functionality shall be enabled/disabled by a new parameter in the SIP [host_module.X/t38parameters] section of the callctrl.cfg file with a default value of disabled.

3

The parameter specified in requirement RID#2 shall be configurable on the Windows operating system via the configtool.exe configuration tool as an advanced IP parameter for the SIP IP Call Control Module.

4

When the fax_transport_protocol parameter in the callctrl.cfg file is set to t38_first and the FR17117 parameter identified in RID#2 is enabled, if a SIP T.38 reINVITE transmitted by the Dialogic Brooktrout SIP stack is rejected with a 488 (Not Acceptable) or a 606 (Not Acceptable), the Dialogic Brooktrout SIP stack shall transmit a RTP reINVITE to the remote SIP endpoint with the same RTP codec settings that were used to negotiate the initial SIP call.

5

If the RTP reINVITE referenced in RID#4 is accepted by the remote SIP endpoint with a 200 OK, the transport protocol for the fax transfer shall be G.711 Fax Passthrough.

6

If the RTP reINVITE referenced in RID#4 is rejected by the remote SIP endpoint, the Dialogic Brooktrout SIP stack shall drop the call by sending a SIP BYE request.

7

A new field shall be added to the args_fax structure to allow BFV API applications receiving an inbound call to specify, at runtime, whether FR17117 functionality should be enabled. This new field will allow applications to over-ride the value of the new parameter specified in requirement RID#2 by populating this field with a value to enable, disable or use default FR17117 functionality and then calling one of the following BFV API Fax functions:

  • BfvFaxBegin()
  • BfvFaxReceive()
  • BfvFaxBeginReceive()
  • BfvFaxBeginRaw()
  • BfvFaxBeginTiff()


    Note: Default FR17117 functionality will be defined by the value of the new parameter added to the callctrl.cfg file as defined above by requirement RID#2. For example, if the new parameter is specified in the callctrl.cfg file to enable FR17117 functionality, then the default functionality will be for FR17117 functionality to be enabled. However, if the new parameter is either not specified in the callctrl.cfg file or is specified with a value that disables FR17117 functionality, then the default functionality will be for FR17117 functionality to be disabled.

8

A new field shall be added to the args_cc and args_telephone structures to allow BFV API applications initiating an outbound a call to specify, at runtime, whether FR17117 functionality should be enabled. This new field will allow applications to over-ride the value of the new parameter specified in requirement RID#2 by populating this field with a value to enable, disable or use default FR17117 functionality and then calling one of the following BFV API Call Control functions:

  • BfvCallSetup()
  • BfvLineOriginateCall()


    Note: Default FR17117 functionality is defined in detail in requirement RID#7 above.

9

When the fax_transport_protocol parameter in the callctrl.cfg file is not set to t38_first, the new field in the args_fax, args_cc and args_telphone structures will be ignored by the BFV API.

10

The Dialogic Brooktrout SIP stack implementation shall support accepting a SIP RTP reINVITE after rejecting a SIP T.38 reINVITE in order to allow G.711 fax passthrough.

Note that this requirement doesn't require the remote SIP endpoint to transmit a SIP RTP reINVITE for G.711 fax passthrough to work after a T.38 reINVITE has been rejected, but if one is transmitted to the Dialogic Brooktrout SIP stack, it will be accepted and the fax will be transferred using G.711 fax passthrough.

11

The new parameter added to the callctrl.cfg configuration file as defined above in requirement #RID2 shall be ignored when processing non-SIP calls.

12

The new field added to the args_fax, args_cc and args_telphone structures as defined above in requirements #RID7 and #RID8 shall be ignored by the Dialogic BFV API functions for non-SIP calls.

 

MRD/FR Requirements/Mapping

N/A

Reference List

RFC 3261 - SIP: Session Initiation Protocol (http://www.ietf.org/rfc/rfc3261.txt)

SIP T.38 Call Flow Examples and Best Current Practices (http://tools.ietf.org/html/draft-mule-sip-t38callflows-01)

 

Product Areas Affected

  • This feature will only affect the SIP protocol.

 

API/Library Change(s):

  • The args_fax, args_cc and args_telphone structures in the BFV API will each be modified with a new field that can be used, at runtime, to enable, disable or use default FR17117 functionality.
  • No changes to any 3rd party components are required for this feature request.

Performance Change(s):

  • None

 

Documentation Change(s)

  • The Dialogic Brooktrout Bfv APIs Reference Manual will be updated with documentation of the new parameter in the callctrl.cfg configuration file that enables/disables FR17117 feature functionality.
  • The documentation for the following fax functions in the Dialogic Brooktrout Bfv APIs Reference Manual will be updated to document how the new field in the args_fax structure can be used to enable/disable FR17117 functionality at runtime for inbound calls:
    • BfvFaxBegin()
    • BfvFaxReceive()
    • BfvFaxBeginReceive()
    • BfvFaxBeginRaw()
    • BfvFaxBeginTiff()
  • The documentation for the following call control functions in the Dialogic Brooktrout Bfv APIs Reference Manual will be updated to document how the new field in the args_cc and args_telephone structures can be used to enable/disable FR17117 functionality at runtime for outbound calls:
    • BfvCallSetup()
    • BfvLineOriginateCall()

 

Configuration Change(s)

  • None

 

Build and Installation Change(s)

  • None

 

Specific Product Deliverables

 

File

Windows

Linux

Solaris*

bostdlld.dll

?

 

 

brktsip.dll

?

 

 

bostlib_mt.so

 

?

?

brktsip_mt.so

 

?

?


*This feature will be implemented on the Windows Linux and Solaris Operating Systems (OSs). However, testing of this feature will be limited to Windows and Linux OSs. Testing of this feature on the Solaris OS will not be performed.

Required Purchases

  • None

 

Product SKUs and Materials

  • None

 

Test Scenario(s)

The developer test plan will document the full description of the unit testing to be performed for feature request FR17117. This testing shall, at a minimum, contain the following test cases:

  • T.38 Only Mode

This test case verifies that when the fax transport protocol is configured to t38_only in the callctrl.cfg configuration file, when a SIP T.38 reINVITE transmitted by the Dialogic Brooktrout SIP stack is rejected, no RTP reINVITE will be transmitted by the Dialogic Brooktrout SIP stack and the SIP call will be dropped regardless of the setting of the parameter to enable/disable FR17117 feature support in the callctrl.cfg configuration file.

  • T.38 Never Mode

This test case verifies that when the fax transport protocol is configured to t38_never in the callctrl.cfg configuration file, that no SIP T.38 reINVITE is transmitted by the Dialogic Brooktrout SIP stack and the fax is transferred in Fax Passthrough mode regardless of the setting of the parameter to enable/disable FR17117 feature support in the callctrl.cfg configuration file.

  • FR17117 Feature Support Disabled, G.711 Fallback Mode

This test case verifies that when the parameter to enable/disable FR17117 feature support is not present or is set to a value that disables support in the callctrl.cfg configuration file, the fax transport protocol is configured to t38_first and a BFV API application specifies a value to use the default FR17117 feature support, when a SIP T.38 reINVITE transmitted by the Dialogic Brooktrout SIP stack is rejected, no RTP reINVITE will be transmitted by the Dialogic Brooktrout SIP stack and the fax will be transferred in Fax Passthrough mode.

  • FR17117 Feature Support Enabled, G.711 Fallback Mode

This test case verifies that when FR17117 feature support is enabled in the callctrl.cfg configuration file, the fax transport protocol is configured to t38_first and a BFV API application specifies a value to use the default FR17117 feature support, when a SIP T.38 reINVITE transmitted by the Dialogic Brooktrout SIP stack is rejected, a SIP RTP reINVITE will be transmitted by the Dialogic Brooktrout SIP stack and the fax will be transferred in Fax Passthrough mode.

  • Runtime Disabling of FR17117 Feature Support, G.711 Fallback Mode, Inbound Call

This test case verifies that when FR17117 feature support is enabled in the callctrl.cfg configuration file and the fax transport protocol is configured to t38_first, when a BFV API application specifies a value to disable FR17117 feature support when receiving an inbound SIP call, if a SIP T.38 reINVITE transmitted by the Dialogic Brooktrout SIP stack is rejected, no RTP reINVITE will be transmitted by the Dialogic Brooktrout SIP stack and the fax will be transferred in Fax Passthrough mode.

  • Runtime Disabling of FR17117 Feature Support, G.711 Fallback Mode, Outbound Call

This test case verifies that when FR17117 feature support is enabled in the callctrl.cfg configuration file and the fax transport protocol is configured to t38_first, when a BFV API application specifies a value to disable FR17117 feature support when initiating an outbound SIP call, if a SIP T.38 reINVITE transmitted by the Dialogic Brooktrout SIP stack is rejected, no RTP reINVITE will be transmitted by the Dialogic Brooktrout SIP stack and the fax will be transferred in Fax Passthrough mode.

  • Runtime Enabling of FR17117 Feature Support, G.711 Fallback Mode, Inbound Call

This test case verifies that when FR17117 feature support is disabled in the callctrl.cfg configuration file and the fax transport protocol is configured to t38_first, when a BFV API application specifies a value to enable FR17117 feature support when receiving an inbound SIP call, if a SIP T.38 reINVITE transmitted by the Dialogic Brooktrout SIP stack is rejected, an RTP reINVITE will be transmitted by the Dialogic Brooktrout SIP stack and the fax will be transferred in Fax Passthrough mode.

  • Runtime Enabling of FR17117 Feature Support, G.711 Fallback Mode, Outbound Call

This test case verifies that when FR17117 feature support is disabled in the callctrl.cfg configuration file and the fax transport protocol is configured to t38_first, when a BFV API application specifies a value to enable FR17117 feature support when initiating an outbound SIP call, if a SIP T.38 reINVITE transmitted by the Dialogic Brooktrout SIP stack is rejected, an RTP reINVITE will be transmitted by the Dialogic Brooktrout SIP stack and the fax will be transferred in Fax Passthrough mode.

Planning Information

 

Deliverables required during planning

The following development or management process artifacts are required for this feature during planning and Implementation. This should be taken into consideration when developing estimates.

Deliverable

Required

Notes

Work Breakdown Spreadsheet (or SW Implementation Plan)

No

 

Developer Test Plan

Yes

 

QA Test Plan

No

This feature will be validated by developer testing only. No testing by the Product Validation (PV) group is planned for this feature.

High Level Design Document

Yes

 

Feasibility Study

No

 

mIPA Presentation

Yes

 

Certification of Origin revision

No

 

Patent Submission

No

 



Target Release:
SDK 6.7.1

Backward propagation Release(s):
None

Risks:
None