![]() |
|
Модераторы: ginnie, korob2001 |
![]()
|
|
| gammaray |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 12.8.2006 Репутация: нет Всего: нет |
Всем привет! Есть здесь люди, которые знакомы с модулем Net::SMPP для Perl?
Есть пара вопросов по этому модулю... Вообщем нужно написать программу SMPP-клиент, который будет слать смс, проверять их доставку, выводить статистику в файл и т.д. Так я подкючаюсь к SMSC(понятно, что все параметры подключения выдуманы): ($smpp,$err) = Net::SMPP->new_transmitter( "192.168.100.100", port=>"9999 9", system_id =>"System_Id", password => "System_Password", system_type=>"System_Type" ) or die; print"Connect-transmitter. Status=",$err->{status},"*\n"; Подключение проходит нормально! Дальше отсылаю тестовую смс(параметры опять выдуманы): $resp = $smpp_t->submit_sm( source_addr_ton => 0x01, source_addr_npi => 0x00, source_addr => "9999 9", dest_addr_ton => 0x01, dest_addr_npi => 0x01, destination_addr => "1234 5678 9", data_coding => 0x04, short_message=> "tstmsg", esm_class => 0x00, ); Смс успешно доходит! Так вот.. Суть проблемы в следубщем: как проверить с помощью Net::SMPP доставку этого сообщения? Пишу, как описано в документации к Net:SMMP на CPAN http://search.cpan.org/~sampo/Net-SMPP-1.10/SMPP.pm $resp_pdu = $smpp->query_sm(message_id => $msg_id) or die; die "Response indicated error: " . $resp_pdu->explain_status() if $resp_pdu->status; При таком кодепрограмма вылетает на самой первой строке с сообщением Can"t call method "query_sm" on an undefined value! Смотрел в Watch, что находится в message_id => $msg_id... Там массив с 2 элементами: тип scalar со значением message_id и 2 элемент null! Я уже не знаю, как делать! Все методы перепробовал! А к тому же при тесте программы всё время приходится слать смс, а это денег стоит! Кто-нибудь проверял доставку сообщения? Как это сделать? Очень нужна помощь! Заранее спасибо! |
|||
|
||||
| gammaray |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 12.8.2006 Репутация: нет Всего: нет |
Всё, спасибо, предыдущая проблема отпала! Но зато теперь такая встала...
Вот отрывок теста моей программы... #!/usr/bin/perl use Net::SMPP; sender(); print "Press <Enter> to continue..."; <STDIN>; sub sender { ($smpp_tr,$err) = Net::SMPP->new_transmitter( "server.ru", port=>"2222", system_id =>'login', password => 'password', ) or die; print"Connect-transmitter. Status=",$err->{status},"*\n"; $resp = $smpp_tr->submit_sm( source_addr_ton => 0x01, source_addr_npi => 0x00, source_addr => '99999', dest_addr_ton => 0x01, dest_addr_npi => 0x01, destination_addr => '123456789', data_coding => 0x04, short_message=> 'tstmsg ', esm_class => 0x00, ) or die; $msg_id = $resp->{message_id}; $resp = $smpp_tr->query_sm(message_id => $msg_id) or die; die "Response indicated error: " . $resp->explain_status() if $resp->status; $resp = $smpp_tr->unbind(); } Всё работает верно вплоть до строки проверки досатвки $resp = $smpp_tr->query_sm(message_id => $msg_id) or die; На ней прога виснет! Сидел думал много часов, но ничего не помогало! Потом просто догадался снифером посмотреть, а что собственно программа шлёт? И вот на что наткнулся(запросы по протоколу SMPP по порядку): SMPP Bind_transmitter SMPP Bind_transmitter - resp: "OK" SMPP Submit_sm SMPP Submit_sm - resp: "OK" Здесь, как видно, всё ок! А вот дальше... SMPP Query_sm SMPP Generic_nack: "Invalid command ID"(!!!) Как такое возможно??? Ведь даже снифер показывает, что идёт запрос SMPP Query_sm! Может кто знает, в чём дело? Да кстати в запросе SMPP Query_sm в поле Operation(что и есть command ID) стоит Query_sm(0x00000003)! Кто-нибудь знает, у query_sm такой command_id или нет? |
|||
|
||||
![]()
|
| Правила форума "Perl: Системное программирование" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |