[AsteriskBrasil] Plano de discagem "unificação"

Sebastiao Rocha sebastiaorocha em interlinksistemas.com.br
Segunda Julho 21 14:08:36 BRT 2008


Olá pessoal...

gostaria de uma ajuda com este polano de discagem, para unificar ele em um 
só, estou duplicando ele, porem com mascara diferente, e quando altero em um 
local tenho que alterar no outro tb..

como unificar?

Obs, deixei livre as sequencias de 3 à 95 para incluir novas autorizações, 
mas vou passar esta autorização par ao banco de dados tb e então não será 
pelo callerid, mas sim pela extensão que está realizando a chamada a qual se 
encontra no final deste.

DELETE FROM `extensions` WHERE `exten` = '_[3]XXXXXXX';
INSERT INTO `extensions` (`descricao`, `context`, `exten`, `priority`, 
`app`, `appdata`) VALUES
('Interurbano Area Local', 'interlink', '_[3]XXXXXXX',  1, 'gotoif', 
'$["${CALLERID(num):0:4}" = "7999"]?97' ),
('Interurbano Area Local', 'interlink', '_[3]XXXXXXX',  2, 'playback', 
'no-rights'),
('Interurbano Area Local', 'interlink', '_[3]XXXXXXX', 96, 'goto',   '106'),
('Interurbano Area Local', 'interlink', '_[3]XXXXXXX', 97, 'Set', 
'PRI_CAUSE=1'),
('Interurbano Area Local', 'interlink', '_[3]XXXXXXX', 98, 'dial', 
'SIP/5534${EXTEN}@tronco|45|r'),
('Interurbano Area Local', 'interlink', '_[3]XXXXXXX', 99, 'gotoif', 
'$["${DIALSTATUS}" = "CHANUNAVAIL"]?106' ),
('Interurbano Area Local', 'interlink', '_[3]XXXXXXX',100, 'gotoif', 
'($["${DIALSTATUS}" = "BUSY"]?106'),
('Interurbano Area Local', 'interlink', '_[3]XXXXXXX',101, 'gotoif', 
'($["${DIALSTATUS}" = "ANSWER"]?108'),
('Interurbano Area Local', 'interlink', '_[3]XXXXXXX',102, 'gotoif', 
'($["${DIALSTATUS}" = "NOANSWER"]?106'),
('Interurbano Area Local', 'interlink', '_[3]XXXXXXX',103, 'gotoif', 
'($["${DIALSTATUS}" = "CANCEL"]?106'),
('Interurbano Area Local', 'interlink', '_[3]XXXXXXX',104, 'gotoif', 
'($["${DIALSTATUS}" = "DONTCALL"]?106'),
('Interurbano Area Local', 'interlink', '_[3]XXXXXXX',105, 'gotoif', 
'($["${DIALSTATUS}" = "UNKNOWN"]?106'),
('Interurbano Area Local', 'interlink', '_[3]XXXXXXX',106, 'set', 
'CDR(disposition)= "NOANSWER"' ),
('Interurbano Area Local', 'interlink', '_[3]XXXXXXX',107, 'NoCDR',   '' ),
('Interurbano Area Local', 'interlink', '_[3]XXXXXXX',108, 'Hangup',  '');


/* Plano de Discagem para interurbano nacional 0xx-xxxx-xxxx */
/****************************************************************************************************/
DELETE FROM `extensions` WHERE `exten` = '_0XX[3]XXXXXXX';
INSERT INTO `extensions` (`descricao`, `context`, `exten`, `priority`, 
`app`, `appdata`) VALUES
('Interurbano Nacional', 'interlink', '_0XX[3]XXXXXXX',  1, 'gotoif', 
'$["${CALLERID(num):0:4}" = "7999"]?97' ),
('Interurbano Nacional', 'interlink', '_0XX[3]XXXXXXX',  2, 'playback', 
'no-rights'),
('Interurbano Nacional', 'interlink', '_0XX[3]XXXXXXX', 96, 'goto', 
'106'),
('Interurbano Nacional', 'interlink', '_0XX[3]XXXXXXX', 97, 'Set', 
'PRI_CAUSE=1'),
('Interurbano Nacional', 'interlink', '_0XX[3]XXXXXXX', 98, 'dial', 
'SIP/55${EXTEN:1}@tronco|45|r'),
('Interurbano Nacional', 'interlink', '_0XX[3]XXXXXXX', 99, 'gotoif', 
'$["${DIALSTATUS}" = "CHANUNAVAIL"]?106' ),
('Interurbano Nacional', 'interlink', '_0XX[3]XXXXXXX',100, 'gotoif', 
'($["${DIALSTATUS}" = "BUSY"]?106'),
('Interurbano Nacional', 'interlink', '_0XX[3]XXXXXXX',101, 'gotoif', 
'($["${DIALSTATUS}" = "ANSWER"]?108'),
('Interurbano Nacional', 'interlink', '_0XX[3]XXXXXXX',102, 'gotoif', 
'($["${DIALSTATUS}" = "NOANSWER"]?106'),
('Interurbano Nacional', 'interlink', '_0XX[3]XXXXXXX',103, 'gotoif', 
'($["${DIALSTATUS}" = "CANCEL"]?106'),
('Interurbano Nacional', 'interlink', '_0XX[3]XXXXXXX',104, 'gotoif', 
'($["${DIALSTATUS}" = "DONTCALL"]?106'),
('Interurbano Nacional', 'interlink', '_0XX[3]XXXXXXX',105, 'gotoif', 
'($["${DIALSTATUS}" = "UNKNOWN"]?106'),
('Interurbano Nacional', 'interlink', '_0XX[3]XXXXXXX',106, 'set', 
'CDR(disposition)= "NOANSWER"' ),
('Interurbano Nacional', 'interlink', '_0XX[3]XXXXXXX',107, 'NoCDR',  '' ),
('Interurbano Nacional', 'interlink', '_0XX[3]XXXXXXX',108, 'Hangup',  '');

DELETE FROM `extensions` WHERE `exten` = '_2001';
INSERT INTO `extensions` (`descricao`, `context`, `exten`, `priority`, 
`app`, `appdata`) VALUES
/* Consulta a base de dados e retoena a quantidade de segundos o usuário 
ainda possui */
( 'Teste Mysql', 'interlink', '_2001', 1, 'MYSQL',   'Connect connid 
${dbhostname} ${dbuser} ${dbpass} ${dbname}' ),
( 'Teste Mysql', 'interlink', '_2001', 2, 'MYSQL',   'Query resultid 
${connid} SELECT\ `seconds_left` \ from\ `sip_users`\ where\ 
`accountcode`=${CALLERID(num):0:4}' ),
( 'Teste Mysql', 'interlink', '_2001', 3, 'MYSQL',   'Fetch fetchid 
${resultid} seconds_left' ),
( 'Teste Mysql', 'interlink', '_2001', 4, 'MYSQL',   'Clear ${resultid}' ),
( 'Teste Mysql', 'interlink', '_2001', 5, 'MYSQL',   'Disconnect 
${connid}' ),
( 'Teste Mysql', 'interlink', '_2001', 6, 'noop',    'Crédito: 
${seconds_left} segundos.' ),

/* Realiza a chamada caso possua mais de 5 segundos de crédito */
( 'Teste Mysql', 'interlink', '_2001', 7, 'gotoif',   '$[${seconds_left} > 
5]?30' ),

/* Finaliza a chamada por não possuir créditos */
( 'Teste Mysql', 'interlink', '_2001', 8, 'goto',    '45' ),

/* Inicio da chamada */
( 'Teste Mysql', 'interlink', '_2001',30, 'set', 
'TIMEOUT(absolute)=${seconds_left}' ),
('Caixa Postal', 'interlink', '_2001',31, 'dial',    'SIP/${EXTEN}|45|r' ),
('Caixa Postal', 'interlink', '_2001',32, 'gotoif',   '$["${DIALSTATUS}" = 
"CHANUNAVAIL"]?49' ),
('Caixa Postal', 'interlink', '_2001',33, 'gotoif',   '($["${DIALSTATUS}" = 
"BUSY"]?49'),
('Caixa Postal', 'interlink', '_2001',34, 'gotoif',   '($["${DIALSTATUS}" = 
"ANSWER"]?50'),
('Caixa Postal', 'interlink', '_2001',35, 'gotoif',   '($["${DIALSTATUS}" = 
"NOANSWER"]?49'),
('Caixa Postal', 'interlink', '_2001',36, 'gotoif',   '($["${DIALSTATUS}" = 
"CANCEL"]?49'),
('Caixa Postal', 'interlink', '_2001',37, 'gotoif',   '($["${DIALSTATUS}" = 
"DONTCALL"]?49'),
('Caixa Postal', 'interlink', '_2001',38, 'gotoif',   '($["${DIALSTATUS}" = 
"UNKNOWN"]?49'),
( 'Teste Mysql', 'interlink', '_2001',39, 'goto',    '49' ),

/* Indica que não possui créditos suficientes */
( 'Teste Mysql', 'interlink', '_2001', 48, 'playback',  'no-rights' ),
( 'Teste Mysql', 'interlink', '_2001', 49, 'NoCDR', '' ),

/* Encerra a ligação */
( 'Teste Mysql', 'interlink', '_2001', 50, 'Hangup',  '' ); 



More information about the AsteriskBrasil mailing list