2namespace Bitrix\MessageService\Sender;
6use Bitrix\Main\EventResult;
8use Bitrix\MessageService\Internal\Entity\MessageTable;
9use Bitrix\MessageService\Message;
10use Bitrix\MessageService\MessageType;
11use Bitrix\Main\ORM\Data\AddResult;
12use Bitrix\MessageService\Sender\Result\SendMessage;
18 private static $senders;
25 if (self::$senders ===
null)
29 if (
Sms\Twilio::isSupported())
33 if (
Sms\Twilio2::isSupported())
37 if (
Sms\SmsLineBy::isSupported())
41 if (
Sms\MfmsRu::isSupported())
45 if (
Sms\Rest::isSupported())
49 if (
Sms\SmscUa::isSupported())
53 if (
Sms\ISmsCenter::isSupported())
59 if (
Sms\SmsRu::isSupported() || $sender->isRegistered())
61 self::$senders[] = $sender;
65 if (
Sms\SmsAssistentBy::isSupported() || $sender->isRegistered())
67 self::$senders[] = $sender;
71 if (
Sms\SmsEdnaru::isSupported() || $sender->isRegistered())
73 self::$senders[] = $sender;
77 if (
Sms\Ednaru::isSupported() || $sender->isRegistered())
79 self::$senders[] = $sender;
83 if (
Sms\EdnaruImHpx::isSupported() || $sender->isRegistered())
85 self::$senders[] = $sender;
88 self::fireSendersEvent();
90 return self::$senders;
93 private static function fireSendersEvent()
95 $event =
new Event(
'messageservice',
'onGetSmsSenders');
99 if (
$result->getType() === EventResult::ERROR)
103 $resultData =
$result->getParameters();
104 if (is_array($resultData))
106 foreach ($resultData as $sender)
109 $sender instanceof
Base
111 && $sender::isSupported()
114 self::$senders[] = $sender;
127 foreach (static::getSenders() as $sender)
129 $select[$sender->getId()] = $sender->getName();
140 foreach (static::getSenders() as $sender)
143 'id' => $sender->getId(),
144 'type' => $sender->getType(),
145 'isTemplatesBased' => ($sender->isConfigurable() && $sender->isTemplatesBased()),
146 'name' => $sender->getName(),
147 'shortName' => $sender->getShortName(),
148 'canUse' => $sender->canUse()
160 foreach (static::getSenders() as $sender)
162 if ($sender->getId() === $id)
187 return static::getSenders()[0];
195 return static::getUsableSender() !==
null;
201 public static function getManageUrl()
204 $defaultProvider = static::getDefaultSender();
214 foreach (static::getSenders() as $sender)
216 if ($sender->canUse())
230 foreach (static::getSenders() as $sender)
237 $senderList[] = $sender;
254 $sender = static::getUsableSender();
257 if ($sender ===
null)
276 if ($sender && !
$message->getFrom())
278 $message->setFrom($sender->getDefaultFrom());
289 public static function createMessageListByTemplate(
string $eventName,
array $fields = []):
array
293 $templateMessageListResult =
$event->createMessageList();
294 if (!$templateMessageListResult->isSuccess())
299 $templateMessages = $templateMessageListResult->getData();
303 foreach($templateMessages as $templateMessage)
307 'MESSAGE_FROM' =>
$fields[
'DEFAULT_FROM'] ?? $sender->getDefaultFrom(),
308 'MESSAGE_TO' => $templateMessage->getReceiver(),
309 'MESSAGE_BODY' => $templateMessage->getText(),
332 if ($sender ===
null)
334 return (
new Result())->addError(
new Main\
Error(
'Incorrect sender id.'));
350 static::ON_MESSAGE_SUCCESSFULLY_SENT_EVENT,
374 public static function getMessageStatus(
$messageId)
387 $sender = static::getSenderById(
$message[
'SENDER_ID']);
388 if (!$sender || !$sender->isConfigurable())
390 $result =
new Result\MessageStatus();
397 return $sender->getMessageStatus(
$message);
if(! $messageFields||!isset($messageFields['message_id'])||!isset($messageFields['status'])||!CModule::IncludeModule("messageservice")) $messageId
static createFromFields(array $fields, Sender\Base $sender=null)
static getDefaultSender()
static getSenderInfoList()
const ON_MESSAGE_SUCCESSFULLY_SENT_EVENT
static createMessage(array $messageFields, Base $sender=null)
static sendMessage(array $messageFields, Base $sender=null)
static getRegisteredSenderList()
static getSenderSelectList()
static getSenderById($id)
static sendMessageDirectly(array $messageFields, Base $sender=null)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
if($NS['step']==6) if( $NS[ 'step']==7) if(COption::GetOptionInt('main', 'disk_space', 0) > 0) $info
NormalizePhone($number, $minLength=10)