Регулярные выражения преобразования вызываемого номера

Модуль для организации IP-телефонии
Игорь
Сообщения: 36
Зарегистрирован: Вт янв 03, 2017 4:29 am

Регулярные выражения преобразования вызываемого номера

Сообщение Игорь »

В документации описан сабж. Транки и тарификацмя в биллинге по Е-164
Надо отрезать '+', добавлять к шестизначным год города с семеркой, убирать выход на межгород и менять 8-ку на 7-ку. Сделал:

$conf{VOIP_NUMBER_EXPR} = '+/;^[2-79]([0-9]{5})$/74732$number;^810/;^8/7';

НЕ РАБОТАЕТ.

Что сделал не так?

Игорь
Сообщения: 36
Зарегистрирован: Вт янв 03, 2017 4:29 am

Re: Регулярные выражения преобразования вызываемого номера

Сообщение Игорь »

Итоговая строка у меня $conf{VOIP_NUMBER_EXPR} = '^\+7/7;^810/;^8/7;^(2[0-9]{5})$/74732$number';
В ней работает все кроме заменить +7 на 7
и совсем не работает конструкция $number
На последнюю выходит ошибка:
# Executing group from file /etc/raddb/sites-enabled/abills_default
+group Perl {
DBD::mysql::st execute failed: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '
)
ORDER BY 2 DESC LIMIT 1' at line 6 at /usr/abills/libexec/../Abills/mysql/main.pm line 281.

Игорь
Сообщения: 36
Зарегистрирован: Вт янв 03, 2017 4:29 am

Re: Регулярные выражения преобразования вызываемого номера

Сообщение Игорь »

А набор с "+" как я понял , он вообще не пропускает...

~AsmodeuS~
Site Admin
Сообщения: 5746
Зарегистрирован: Пт янв 28, 2005 3:11 pm
Контактная информация:

Re: Регулярные выражения преобразования вызываемого номера

Сообщение ~AsmodeuS~ »

Игорь писал(а):Итоговая строка у меня $conf{VOIP_NUMBER_EXPR} = '^\+7/7;^810/;^8/7;^(2[0-9]{5})$/74732$number';
В ней работает все кроме заменить +7 на 7
и совсем не работает конструкция $number
На последнюю выходит ошибка:
# Executing group from file /etc/raddb/sites-enabled/abills_default
+group Perl {
DBD::mysql::st execute failed: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '
)
ORDER BY 2 DESC LIMIT 1' at line 6 at /usr/abills/libexec/../Abills/mysql/main.pm line 281.

тут нужно проверить /tmp/sql_errors

Игорь
Сообщения: 36
Зарегистрирован: Вт янв 03, 2017 4:29 am

Re: Регулярные выражения преобразования вызываемого номера

Сообщение Игорь »

Там только много-много ошибок
bill.tags' doesn't exist

А в логе радиуса есть немного:
Tue Apr 4 11:33:25 2017 : Error: rlm_perl: perl_embed:: module = /usr/abills/libexec/rlm_perl.pl , func = authenticate exit status= Quantifier follows nothing in regex; marked by <-- HERE in m/+ <-- HERE / at /usr/abills/libexec/../Abills/mysql/Voip_aaa.pm line 168.
Thu Apr 6 09:14:29 2017 : Error: rlm_perl: perl_embed:: module = /usr/abills/libexec/rlm_perl.pl , func = authenticate exit status= Unmatched ( in regex; marked by <-- HERE in m/( <-- HERE ^[2-79]([0-9]{5})/ at /usr/abills/libexec/../Abills/mysql/Voip_aaa.pm line 168.

Игорь
Сообщения: 36
Зарегистрирован: Вт янв 03, 2017 4:29 am

Re: Регулярные выражения преобразования вызываемого номера

Сообщение Игорь »

В логе мускуля тишина.

В выводе радиуса:
Found Auth-Type = Perl
# Executing group from file /etc/raddb/sites-enabled/abills_default
+group Perl {
DBD::mysql::st execute failed: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')
ORDER BY 2 DESC LIMIT 1' at line 6 at /usr/abills/libexec/../Abills/mysql/main.pm line 281.

Что делать???

~AsmodeuS~
Site Admin
Сообщения: 5746
Зарегистрирован: Пт янв 28, 2005 3:11 pm
Контактная информация:

Re: Регулярные выражения преобразования вызываемого номера

Сообщение ~AsmodeuS~ »

Игорь писал(а):Там только много-много ошибок
bill.tags' doesn't exist

А в логе радиуса есть немного:
Tue Apr 4 11:33:25 2017 : Error: rlm_perl: perl_embed:: module = /usr/abills/libexec/rlm_perl.pl , func = authenticate exit status= Quantifier follows nothing in regex; marked by <-- HERE in m/+ <-- HERE / at /usr/abills/libexec/../Abills/mysql/Voip_aaa.pm line 168.
Thu Apr 6 09:14:29 2017 : Error: rlm_perl: perl_embed:: module = /usr/abills/libexec/rlm_perl.pl , func = authenticate exit status= Unmatched ( in regex; marked by <-- HERE in m/( <-- HERE ^[2-79]([0-9]{5})/ at /usr/abills/libexec/../Abills/mysql/Voip_aaa.pm line 168.

perl -v

~AsmodeuS~
Site Admin
Сообщения: 5746
Зарегистрирован: Пт янв 28, 2005 3:11 pm
Контактная информация:

Re: Регулярные выражения преобразования вызываемого номера

Сообщение ~AsmodeuS~ »

Игорь писал(а):В логе мускуля тишина.

В выводе радиуса:
Found Auth-Type = Perl
# Executing group from file /etc/raddb/sites-enabled/abills_default
+group Perl {
DBD::mysql::st execute failed: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')
ORDER BY 2 DESC LIMIT 1' at line 6 at /usr/abills/libexec/../Abills/mysql/main.pm line 281.

Что делать???
сразу поле получения ошибки сделайте tail /tmp/sql_errors

Игорь
Сообщения: 36
Зарегистрирован: Вт янв 03, 2017 4:29 am

Re: Регулярные выражения преобразования вызываемого номера

Сообщение Игорь »

После того, как победил ".tags' doesn't exist", стер этот файл.
Теперь он пустой. Нет там ошибок.

Игорь
Сообщения: 36
Зарегистрирован: Вт янв 03, 2017 4:29 am

Re: Регулярные выражения преобразования вызываемого номера

Сообщение Игорь »

Зато в радиус лог сыпится:
Fri Apr 7 20:21:07 2017 : Error: rlm_perl: perl_embed:: module = /usr/abills/libexec/rlm_perl.pl , func = authenticate exit status= Can't locate object method "prepare" via package "Abills::SQL" at /usr/abills/libexec/../Abills/mysql/main.pm line 263.
Fri Apr 7 20:21:07 2017 : Error: rlm_perl: perl_embed:: module = /usr/abills/libexec/rlm_perl.pl , func = post_auth exit status= Can't locate object method "do" via package "Abills::SQL" at /usr/abills/libexec/../Abills/mysql/main.pm line 257.

Игорь
Сообщения: 36
Зарегистрирован: Вт янв 03, 2017 4:29 am

Re: Регулярные выражения преобразования вызываемого номера

Сообщение Игорь »

переставил DBD, предыдущих ошибок пока не наблюдаю.
Остались только:
DBD::mysql::st execute failed: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')

~AsmodeuS~
Site Admin
Сообщения: 5746
Зарегистрирован: Пт янв 28, 2005 3:11 pm
Контактная информация:

Re: Регулярные выражения преобразования вызываемого номера

Сообщение ~AsmodeuS~ »

Игорь писал(а):переставил DBD, предыдущих ошибок пока не наблюдаю.
Остались только:
DBD::mysql::st execute failed: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')

сразу поле получения ошибки сделайте tail /tmp/sql_errors

Игорь
Сообщения: 36
Зарегистрирован: Вт янв 03, 2017 4:29 am

Re: Регулярные выражения преобразования вызываемого номера

Сообщение Игорь »

tail /tmp/sql_errors


Пусто там.

~AsmodeuS~
Site Admin
Сообщения: 5746
Зарегистрирован: Пт янв 28, 2005 3:11 pm
Контактная информация:

Re: Регулярные выражения преобразования вызываемого номера

Сообщение ~AsmodeuS~ »

а тут ?

/usr/abills/var/log/sql_errors


Ответить