diff --git a/conf.d/ysigchan.conf.sample b/conf.d/ysigchan.conf.sample index b9821317..4282fb2a 100644 --- a/conf.d/ysigchan.conf.sample +++ b/conf.d/ysigchan.conf.sample @@ -134,10 +134,10 @@ ; Defaults to user-provided if missing or incorrect ;screening=user-provided -; format: string: Default data format for outgoing calls. Values: alaw, mulaw, g721 -; Defaults to alaw if missing or incorrect +; format: string: Default data format for outgoing calls. Values: alaw, mulaw, g721 +; Defaults to mulaw for ANSI and Japan point codes, alaw for all others ; alaw is used commonly in Europe while mulaw is used commonly in US and Japan. -;format=alaw +;format= ; print-messages: boolean: Print decoded protocol data units to output ; This option is applied on reload diff --git a/libs/ysig/isup.cpp b/libs/ysig/isup.cpp index c60a79b4..a4368c34 100644 --- a/libs/ysig/isup.cpp +++ b/libs/ysig/isup.cpp @@ -2254,7 +2254,16 @@ SS7ISUP::SS7ISUP(const NamedList& params) m_format = params.getValue("format"); if (-1 == lookup(m_format,SignallingUtils::dict(0,0),-1)) - m_format = "alaw"; + switch (m_type) { + case SS7PointCode::ANSI: + case SS7PointCode::ANSI8: + case SS7PointCode::Japan: + case SS7PointCode::Japan5: + m_format = "mulaw"; + break; + default: + m_format = "alaw"; + } const char* rpc = params.getValue("remotepointcode"); m_remotePoint = new SS7PointCode(0,0,0);