summaryrefslogtreecommitdiff
path: root/channels/sig_ss7.c
diff options
context:
space:
mode:
Diffstat (limited to 'channels/sig_ss7.c')
-rw-r--r--channels/sig_ss7.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/channels/sig_ss7.c b/channels/sig_ss7.c
index 0c9b8f51e..795887123 100644
--- a/channels/sig_ss7.c
+++ b/channels/sig_ss7.c
@@ -570,6 +570,7 @@ static void ss7_start_call(struct sig_ss7_chan *p, struct sig_ss7_linkset *links
p->call_level = SIG_SS7_CALL_LEVEL_SETUP;
}
+ /* Companding law is determined by SS7 signaling type. */
if (linkset->type == SS7_ITU) {
law = SIG_SS7_ALAW;
} else {
@@ -1872,6 +1873,13 @@ struct ast_channel *sig_ss7_request(struct sig_ss7_chan *p, enum sig_ss7_law law
{
struct ast_channel *ast;
+ /* Companding law is determined by SS7 signaling type. */
+ if (p->ss7->type == SS7_ITU) {
+ law = SIG_SS7_ALAW;
+ } else {
+ law = SIG_SS7_ULAW;
+ }
+
sig_ss7_set_outgoing(p, 1);
ast = sig_ss7_new_ast_channel(p, AST_STATE_RESERVED, law, transfercapability, p->exten, requestor);
if (!ast) {