websms - имя отправителя

Started by Harun, February 12, 2016, 07:42:16 AM

Previous topic - Next topic

Harun

Понадобилось научить отправлять sms с именем отправителя, отличным от дефолтного. Вот патчик:
diff -Npur netxms-2.0.2.old/src/server/smsdrv/websms/main.cpp netxms-2.0.2.new/src/server/smsdrv/websms/main.cpp
--- netxms-2.0.2.old/src/server/smsdrv/websms/main.cpp 2015-08-29 21:43:58.000000000 +0300
+++ netxms-2.0.2.new/src/server/smsdrv/websms/main.cpp 2016-02-12 08:38:02.000000000 +0300
@@ -52,6 +52,7 @@ struct RequestData
  */
static char s_login[128] = "user";
static char s_password[128] = "password";
+static char from_phone[16] = "";

/**
  * Init driver
@@ -87,9 +88,13 @@ extern "C" BOOL EXPORT SMSDriverInit(con

    ExtractNamedOptionValue(initArgs, _T("password"), buffer, 128);
    WideCharToMultiByte(CP_ACP, WC_DEFAULTCHAR | WC_COMPOSITECHECK, buffer, -1, s_password, 128, NULL, NULL);
+
+   ExtractNamedOptionValue(initArgs, _T("fromphone"), buffer, 16);
+   WideCharToMultiByte(CP_ACP, WC_DEFAULTCHAR | WC_COMPOSITECHECK, buffer, -1, from_phone, 16, NULL, NULL);
#else
    ExtractNamedOptionValue(initArgs, _T("login"), s_login, 128);
    ExtractNamedOptionValue(initArgs, _T("password"), s_password, 128);
+   ExtractNamedOptionValue(initArgs, _T("fromphone"), from_phone, 16);
#endif

return TRUE;
@@ -156,7 +161,13 @@ extern "C" BOOL EXPORT SMSDriverSend(con
#endif

       char url[4096];
-      snprintf(url, 4096, "https://websms.ru/http_in5.asp?http_username=%s&http_password=%s&phone_list=%s&format=xml&message=%s", s_login, s_password, phone, msg);
+      if (from_phone[0]==0x00)
+      {
+          snprintf(url, 4096, "https://websms.ru/http_in5.asp?http_username=%s&http_password=%s&phone_list=%s&format=xml&message=%s", s_login, s_password, phone, msg);
+      } else
+      {
+          snprintf(url, 4096, "https://websms.ru/http_in5.asp?http_username=%s&http_password=%s&phone_list=%s&fromPhone=%s&format=xml&message=%s", s_login, s_password, phone, from_phone, msg);
+      }
       DbgPrintf(4, _T("WebSMS: URL set to \"%hs\""), url);

       curl_free(phone);

Victor Kirhenshtein

Спасибо, войдет в релиз 2.0.3.

Harun

Поломался websms, зачем-то в api они поменяли URL, поправьте пожалуйста:
@@ -161,7 +161,7 @@
#endif

       char url[4096];
-      snprintf(url, 4096, "https://websms.ru/http_in5.asp?http_username=%s&http_password=%s&phone_list=%s%s%s&format=xml&message=%s",
+      snprintf(url, 4096, "https://cab.websms.ru/http_in5.asp?http_username=%s&http_password=%s&phone_list=%s%s%s&format=xml&message=%s",
                s_login, s_password, phone, (s_fromPhone[0] != 0) ? "&fromPhone=" : "", (s_fromPhone[0] != 0) ? s_fromPhone : "", msg);
       nxlog_debug(4, _T("WebSMS: URL set to \"%hs\""), url)

Victor Kirhenshtein

Поправил. Войдет в следующий релиз.