Post on 30-Nov-2014
description
Perl com OpensipsThiago Rondon
YAPC::Brasil 2009
IntroduçãoBásico
ExemplosDicas
Pergunta:O que é SIP ?
Pergunta:O que é OpenSips ?
Pergunta:Perl no OpenSips ?
IntroduçãoBásico
ExemplosDicas
Compilar e Instalar o módulo perl.so:Makefile: EXCLUDE_MODULES
opensips.cfg
loadmodule(“perl.so”) ....modparam(“perl”, “filename”, “/path/to/perlfunctions.pl”);
route {
if (method==”INVITE”) { perl_exec(“function”, “param”);
}
}
IntroduçãoBásico
ExemplosDicas
Trocar183 (Early media) por 180 (Ringing)
• Delay para completar chamada.
• Evitar ring “falso” do software cliente.
Flagsuse OpenSIPS;use OpenSIPS::Constants;sub setflag { $_->setFlag(FL_GREEN);}
sub readflag { $_->readFlag(FL_MAGENTA);}
Headersuse OpenSIPS;sub headernames { my $m = shift; my @h = $m->getHeaderNames(); foreach (@h) { my $f = $_; log(L_INFO, "header $f\n"); }}
::PhoneNumbers
• Módulo OpenSips::Utils::PhoneNumbers
• Política de discagem para os clientes.
IPC::Shareable
• Variável persistente entre múltiplas conexões. (processos)
IntroduçãoBásico
ExemplosDicas
Perl Virtual Database
• Módulo: perlvdb
• Alias
• LDAP
Dicas
• Manipulação dos headers
• Logs customizados
• Flags
• Números
Dicas - Interação
• http://www.opensips.org/
• Mailling list pt_BR
Perguntas ? Dúvidas ?
Comentários ? Sugestões ?
Obrigado!Thiago Rondon
thiago@aware.com.brhttp://www.aware.com.br/