Регистрация SIP из PHP Script

Цель: использовать сервер LAMP для регистрации в качестве конечной точки и сервера SIP.

Зачем: Для перехвата телефонных звонков на определенный добавочный номер, когда они взаимодействуют с PHP CRM.

SIP-сервер не использует Asterisk, так как должен быть достаточно универсальным, чтобы обслуживать любой SIP-сервис.

Я использую удобный PHP SIP Library, написанная Level7Systems — Хотя на этом конкретном пакете не так много примеров или поддержки.

Мой код:

  $api1 = new PhpSIP('x.x.x.x'); //My Servers public IP
$api1->setMethod('REGISTER');
$api1->setFrom('sip:[email protected]');
$api1->setUri('sip:[email protected]');

$api1->setUsername('12345');
$api1->setPassword('abc123');
$res = $api1->send();

Код выполняется успешно, создает сокет (и файл блокировки), привязывается к порту и, предположительно, отправляет пакет UDP на SIP-сервер … Хотя, когда я запускаю tcpdump Я не вижу пакетов UDP, попадающих на порт 5060 или 5061 для сервера назначения.

Код будет работать в течение 10 секунд, пока он ожидает ответа от сервера SIP, поскольку он должен вернуться с ответом 404. Но это никогда не происходит.

Конечно, я также отключил свой брандмауэр.

У кого-нибудь был опыт регистрации конечной точки SIP с использованием PHP?

Есть ли лучший способ сделать это?

0

Решение

Я предлагаю добавить попытку … поймать, чтобы увидеть, что происходит в вашей рутине.

try {
$api1 = new PhpSIP('x.x.x.x'); //My Servers public IP
$api1->setMethod('REGISTER');
$api1->setFrom('sip:[email protected]');
$api1->setUri('sip:[email protected]');

$api1->setUsername('12345');
$api1->setPassword('abc123');
$res = $api1->send();

echo "res: $res\n";

} catch (Exception $e) {

echo $e->getMessage()."\n"; }

Но, если вы используете SIP-телефоны, другое решение состоит в том, чтобы попытаться использовать действие URL / активный URI. Здесь хороший руководство чтобы понять, как их использовать.

1

Другие решения

Так и оказалось, что @sip-server.com на самом деле не был активным SIP-сервером.

Это было больше похоже @sip.sip-server.com это нужно было пинговать, и как только это изменение произошло, все заработало, как и ожидалось.

Благодарю.

0

По вопросам рекламы [email protected]