From e2c49fca734a23f3d8f749437bb6cd229ea052a4 Mon Sep 17 00:00:00 2001 From: Pete Davidson Date: Thu, 3 Mar 2016 15:56:31 -0500 Subject: [PATCH] Version 3.14.0 Added new option --sip-retry-403-forbidden This option is needed because UNIFY systems will respond 403 Forbiden when resetting to apply new settings. RFC 3261 syas this is a final answer and the request should not be retried. UNIFY syas that is the way they work and you have to retry. This violates the RFC, but is needed to make UNIFY work. Added the ability to use all of the Fake Codecs: G.722, G.722.1, G.722.2, G.726-40K, G.726-32K, G.726-24K, G.726-16K, G.728, G.729, G.729A, G.729B, G.729A/B, G.723.1, G.723.1(5.3k), G.723.1A(6.3k), G.723.1A(5.3k), GSM-06.10, GSM-AMR, iLBC Specify with --fake-audio and --sip-audio or --h323-audio. Force fax mode may need to be used because to actual sound is transmitted with the fake codecs. --- Changes.txt | 29 +++++++++++++++++++++++++++++ opal/manager.cxx | 5 +++-- opal/sipep.cxx | 12 ++++++++++++ version.h | 2 +- 4 files changed, 45 insertions(+), 3 deletions(-) diff --git a/Changes.txt b/Changes.txt index e4aea2c..63081a2 100644 --- a/Changes.txt +++ b/Changes.txt @@ -7,6 +7,35 @@ * */ +Changelog for t38modem 3.14.0 (Mar 3 2016) +--- Requires Opal 3.10.14 / Ptlib 2.10.14 +* Additional debug on SIP Registration. +* New option: --sip-retry-403-forbidden + UNIFY systems will respond 403 Forbidden when resetting to apply new + settings. RFC 3261 says this is a final answer and the request should + not be retried. UNIFY says that is the way they work and you have to + retry. This violates ithe RFC, but is needed to make UNIFY work. +* Added ability to use the all of the Fake Codecs: + G.722, G.722.1, G.722.2, G.726-40K, G.726-32K, G.726-24K, G.726-16K, + G.728, G.729, G.729A, G.729B, G.729A/B, G.723.1, G.723.1(5.3k), + G.723.1A(6.3k), G.723.1A(5.3k), GSM-06.10, GSM-AMR, iLBC + Specify with --fake-audio option and --sip-audio or --h323-audio options. + +Changelog for t38modem 3.13.0 (Aug 10 2015) +--- Requires Opal 3.10.13 / Ptlib 2.10.13 +* Opal 3.10.13 changed to fix Cisco CUBE bug where it starts with sequenc + number 32768 instead of the required 0 in UDPTL T.38 packets. +* Added missing DTMF method in SDP on Invite. Fixes some Alcatel systems. + +Changelog for t38modem 3.12.1 (Jan 31 2015) +--- Requires Opal 3.10.12 / Ptlib 2.10.12 +* New option: --force-fax-mode-delay + +Changelog for t38modem 3.12.0 (Jan 31 2015) +--- Requires Opal 3.10.12 / Ptlib 2.10.12 +* Supports G.711 Passthru mode with the addition of spandsp 0.0.6 plugin. +* Changed port numbers to work on Verszon network. We now use 10000-10999. + Changelog for t38modem 3.11.0 (Nov 12 2013) * Changes to work with Opal 3.10.11. diff --git a/opal/manager.cxx b/opal/manager.cxx index 57e65f9..7b2523a 100644 --- a/opal/manager.cxx +++ b/opal/manager.cxx @@ -281,8 +281,9 @@ PBoolean MyManager::Initialise(const PConfigArgs & args) We only support G.711 and T.38 internally, so make sure no other codecs get offered on outbound calls */ - static char const *FormatMask[] = { "!G.711*", "!@fax", "!UserInput/RFC2833", "!NamedSignalEvent" }; - SetMediaFormatMask(PStringArray(PARRAYSIZE(FormatMask), FormatMask)); + // Removing these two lines so we can support the Fake Codecs. + // static char const *FormatMask[] = { "!G.711*", "!@fax", "!UserInput/RFC2833", "!NamedSignalEvent" }; + // SetMediaFormatMask(PStringArray(PARRAYSIZE(FormatMask), FormatMask)); if (args.HasOption("route")) { SetRouteTable(args.GetOptionString("route").Tokenise("\r\n", FALSE)); diff --git a/opal/sipep.cxx b/opal/sipep.cxx index ba07308..23fca75 100644 --- a/opal/sipep.cxx +++ b/opal/sipep.cxx @@ -216,6 +216,7 @@ PString MySIPEndPoint::ArgSpec() "-sip-proxy:" "-sip-register:" "-sip-listen:" + "-sip-retry-403-forbidden." "-sip-no-listen." ; } @@ -254,6 +255,8 @@ PStringArray MySIPEndPoint::Descriptions() " : '*' is all interfaces (default tcp$*:5060 and\n" " : udp$*:5060).\n" " --sip-no-listen : Disable listen for incoming calls.\n" + " --sip-retry-403-forbidden : Enable retrying on 403 Forbidden responses. This violates\n" + " RFC 3261, but is needed by some SIP servers.\n" "\n" "SIP route options:\n" " OPAL-Enable-Audio=[!]wildcard[,[!]...]\n" @@ -337,6 +340,8 @@ void MySIPEndPoint::OnRegistrationStatus(const RegistrationStatus & status) PBoolean MySIPEndPoint::Initialise(const PConfigArgs & args) { + bool retry403; + if (args.HasOption("sip-audio")) { PStringStream s; @@ -398,6 +403,11 @@ PBoolean MySIPEndPoint::Initialise(const PConfigArgs & args) if (args.HasOption("sip-proxy")) SetProxy(args.GetOptionString("sip-proxy")); + if (args.HasOption("sip-retry-403-forbidden")) + retry403=true; + else + retry403=false; + if (args.HasOption("sip-register")) { PString r = args.GetOptionString("sip-register"); PStringArray regs = r.Tokenise("\r\n", FALSE); @@ -411,6 +421,8 @@ PBoolean MySIPEndPoint::Initialise(const PConfigArgs & args) SIPRegister::Params params; params.m_expire = 300; + + params.m_retry403 = retry403; PString user; PINDEX atLoc = prms[0].Find('@'); diff --git a/version.h b/version.h index 2dd7422..b73a48d 100644 --- a/version.h +++ b/version.h @@ -27,7 +27,7 @@ #define _T38M_VERSION_H #define MAJOR_VERSION 3 -#define MINOR_VERSION 13 +#define MINOR_VERSION 14 #define BUILD_TYPE ReleaseCode #define BUILD_NUMBER 0