1C: CRM-Asterisk рдПрдХреАрдХрд░рдг PHP-AGI рдФрд░ 1C рд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ


рд╣рдо Askozia рдХреЛ рдПрдХ IP PBX рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ - рдпрд╣ рдкреНрд░рд╕рд┐рджреНрдз рддрд╛рд░рд╛рдВрдХрди рдХреЗ рд╡рд┐рддрд░рдг рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рдореИрдВрдиреЗ рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ Askozia рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛ ред
CRM рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдЙрддреНрдкрд╛рдж 1C: рд╡реНрдпрд╛рдкрд╛рд░ рдФрд░ рдЧреНрд░рд╛рд╣рдХ рд╕рдВрдмрдВрдз рдкреНрд░рдмрдВрдзрди 8 рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд░реНрд╡рд░ рдореЛрдб рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рд╢реНрди рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдкрдХрд╛ рд╣реБрдЖ рд╣реИ: рдХреНрдпрд╛ 1C: CRM рд╕рд┐рд╕реНрдЯрдо рдХреЛ Asterisk dialplan рдореЗрдВ рдХрд┐рд╕реА рднреА рдирд┐рдпрдВрддреНрд░рдг рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдФрд░ рдХреНрдпрд╛ IP PBX рдХреЛ 1C рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рддрд░реАрдХрд╛ 1 рд╕реА рд╕реЗ рдкреВрдЫрдирд╛ рд╣реИ рдХрд┐ рдПрдХ рдЗрдирдХрдорд┐рдВрдЧ рдХреЙрд▓ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ, рдФрд░ рдпрджрд┐ 1 рд╕реА рдиреЗ рдЙрддреНрддрд░ рджрд┐рдпрд╛, рддреЛ рдПрдХ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ рдпрд╛ рдХреЙрд▓ рд░реВрдЯ рдХреЗ рдорд╛рдирдХ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рдЬрд╛рд░реА рд░рдЦреЗрдВред
рдЖрдЗрдП рд╕рд░рд▓рддрдо рдХреНрд░рд┐рдпрд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ - CRM рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдлреЛрди рдирдВрдмрд░ рджреНрд╡рд╛рд░рд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рдирд╛рдо рд╕реЗрдЯ рдХрд░реЗрдВ рдФрд░ рдЗрд╕ рдорд╛рди рдХреЛ Asterisk CDR рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд▓рд┐рдЦреЗрдВред


рд╕реНрд░реЛрдд рдбреЗрдЯрд╛


1 рд╕реА: рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ 8.2 (8.2.17.143)
"рд╡реНрдпрд╛рдкрд╛рд░ рдФрд░ рдЧреНрд░рд╛рд╣рдХ рд╕рдВрдмрдВрдз рдкреНрд░рдмрдВрдзрди" (CRM + UT)
рд▓рдЧрднрдЧ 10,000 рдареЗрдХреЗрджрд╛рд░ред
DBMS рдПрдордПрд╕ рдПрд╕рдХреНрдпреВрдПрд▓
IIS рд╡реЗрдм рд╕рд░реНрд╡рд░

рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЯреЗрд▓реАрдлреЛрди рдПрдХреНрд╕рдЪреЗрдВрдЬ рдЕрд╕реНрдХреЛрдЬрд╝рд┐рдпрд╛ CFE 2.1:
рддрд╛рд░рд╛рдВрдХрди 1.8.4.4
PHP 4.4.9
рдПрдЬреАрдЖрдИ phpagi.php, рд╡реА 2.14


рдЖрд╕реНрдХреЛрдЬрд╝рд┐рдпрд╛ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА Asterisk рдЖрдВрддрд░рд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ "рдиреЛрдЯрдмреБрдХ" рдбреЗрдЯрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ CallerID рд╕реНрдерд╛рдкрдирд╛ рддрдВрддреНрд░ рд╣реИред рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ тАЬ SDK рд╕рдВрдЪрд╛рд░ рдШрдЯрдХ 1C рдФрд░ рддрд╛рд░рд╛рдВрдХрди тАЭ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред

рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЬреЛ рдЖрдкрдХреЛ AstDB рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:
//     Asterisk   //  (dbFamily, dbKey, dbValue)    =   ActionID = ();  = "";   .DBPut(dbFamily, dbKey, dbValue, ActionID, )   ; ;  ("   "); ;  ("  "); ;  ;  //  


рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг, рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдп рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ:
 // dbFamily - тАЬcidnameтАЭ //  тАЬ тАЭ // dbKey -     ,   ,    // dbValue -     ("cidname", тАЬ74952293042тАЭ, тАЬOOO MIKOтАЭ); 


рдпрд╣ рдкрд╣рд▓рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рдХрд▓реНрдк рд╣реИред рд╣рдордиреЗ рдЗрд╕реЗ рдЕрдкрдиреЗ рд╕рдВрдЧрдарди рдореЗрдВ рдХрд╛рдо рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ред рдХреЙрд▓ рдХреЗ рджреМрд░рд╛рди рд╕рднреА рдХрд╛рд░реНрдпрд╛рд▓рдп рдлреЛрди рдкрд░ рд╕рдВрдкрд░реНрдХреЛрдВ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдХрд┐рд╕рд╕реЗ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рдмреЗрд╢рдХ, рдЕрдЧрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдПрдХ рдирдВрдмрд░ рд╣реИ)ред
рдмреЗрд╢рдХ, CallerID рдХреЛ рдХреЗрд╡рд▓ рдбрд┐рд╕реНрдкреНрд▓реЗ рд╡рд╛рд▓реЗ рдлреЛрди рдкрд░ рд╣реА рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ :)ред

рдиреБрдХрд╕рд╛рди:
AstDB рдФрд░ 1C рдбреЗрдЯрд╛ рдХреЗ рдЖрд╡рдзрд┐рдХ рддреБрд▓реНрдпрдХрд╛рд▓рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдбреЗрдЯрд╛ рдкреБрд░рд╛рдирд╛ рд╣реИред
рдЖрд╕реНрдХреЛрдЬрд╝рд┐рдпрд╛ - рд░реАрдбрдСрдирд▓реА рд╕рд┐рд╕реНрдЯрдоред рдпрд╣ рдЗрд╕рдХрд╛ рдлрд╛рдпрджрд╛ рдФрд░ рдиреБрдХрд╕рд╛рди рд╣реИред рд░рд┐рдмреВрдЯ рдХреЗ рдмрд╛рдж, 1C рд╕реЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреА рд╕реВрдЪреА рд▓рд┐рдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, AstDB рдХреЛ рдЕрдкрдиреА "рдкреНрд░рд╛рд░рдВрднрд┐рдХ" рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╡рд╛рдкрд╕ рд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрди рдХрдорд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░рдг, рд╣рдордиреЗ рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рдХрд▓реНрдк рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдирдЧреНрди рддрд╛рд░рд╛рдВрдХрди рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдХрд╛рдлреА рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

рдПрдЬреАрдЖрдИ рдФрд░ рд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ 1 рд╕реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдСрдирд▓рд╛рдЗрди рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЗ рд╡реЗрд░рд┐рдПрдВрдЯ: рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ 8


рд╣рдо 1C рд╡реЗрдм рд╕реЗрд╡рд╛ рдмрдирд╛рддреЗ рд╣реИрдВ


рдЬрдм рддрд╛рд░рд╛рдВрдХрди рдХреЙрд▓ рдорд╛рд░реНрдЧ рдореЗрдВ рд╣рдорд╛рд░реЗ рдмрд╛рд╣рд░реА рдирдВрдмрд░ рдкрд░ рдХреЙрд▓ рдЖрддреА рд╣реИ, рддреЛ рдПрдЬреАрдЖрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, 1C рд╡реЗрдм рд╕реЗрд╡рд╛ рддрдХ рдкрд╣реБрдБрдЪреЗрдВ рдФрд░ CallerID (рдирд╛рдо) рдХрд╛ рдорд╛рди рд╕реЗрдЯ рдХрд░реЗрдВред

рдПрдХ рд╕рд╛рдзрд╛рд░рдг 1 рд╕реА рд╡реЗрдм рд╕реЗрд╡рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХреА рдЧрдИ рд╣реИ:
рдирд╛рдо - MIKO_identify_number


рдирд╛рдорд╕реНрдерд╛рди: wiki.miko.ru/doc : 1cajam : рдЖрдЗрдбреЗрдВрдЯрд┐рдирдВрдмрд░
рдкреНрд░рдХрд╛рд╢рди рдлрд╝рд╛рдЗрд▓ рдирд╛рдо: 1C_MIKO_identify_number.1cws


рд╕реЗрд╡рд╛ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╕рд░рд▓ рдСрдкрд░реЗрд╢рди (рдлрд╝рдВрдХреНрд╢рди) рд╣реЛрдЧрд╛,


рдСрдкрд░реЗрд╢рди рдЧреБрдг:


рдЗрд╕рдореЗрдВ рдПрдХ рдЗрдирдкреБрдЯ рдкреИрд░рд╛рдореАрдЯрд░ "рдирдВрдмрд░" рд╣реЛрддрд╛ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЙрд▓рд┐рдВрдЧ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЗрд╕реЗ рдкреНрд░реЗрд╖рд┐рдд рдХреА рдЬрд╛рдПрдЧреАред

рдкреИрд░рд╛рдореАрдЯрд░ рдФрд░ рд╡рд╛рдкрд╕реА рдорд╛рди рдХреЗ рдкреНрд░рдХрд╛рд░ " рд╕реНрдЯреНрд░рд┐рдВрдЧ (http://www.w3.org/2001/XMLSchema) "

рд╣рдо рдПрдХ рд╡реЗрдм рд╕реЗрд╡рд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ рдкрд░ рдПрдХ рдЕрд▓рдЧ рд╡рд┐рд╖рдп, рд╣рдо рдЙрд╕ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗрдВрдЧреЗ, рдЖрдк рдпрд╣рд╛рдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ)ред рдкреНрд░рдХрд╛рд╢рди рдХреЗ рдмрд╛рдж, рд╣рдо рд╡реЗрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реЗрд╡рд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВрдЧреЗ, рд▓рд┐рдВрдХ рдкрд░ wsdl рд╡рд┐рд╡рд░рдг рдЦреЛрд▓реЗрдВ:

IP_WEB_SERVER_1C/TestComponenta/ws/1C_MIKO_identify_number.1cws?wsdl

рдпрджрд┐ рд╕рдм рдХреБрдЫ рд╕рд╣реА рд╣реИ, рддреЛ рдкрд░рд┐рдгрд╛рдо рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реЛрдЧрд╛:


рд╕реЗрд╡рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ, рд╣рдо рд╕рдмрд╕реЗ рд╕рд░рд▓ рдСрдкрд░реЗрд╢рди рд╣реИрдВрдбрд▓рд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
  identify(Number)  = "";  (Number);  //     , //         (Number)  = "OOO MIKO " + Number+ "";  ;  


CURL рд▓реЗрдВ рдФрд░ рд╣рдорд╛рд░реА WEB рд╕реЗрд╡рд╛ "рд╣реЗрдб-рдСрди" рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХрдорд╛рдВрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА:
curl --header <> -d '<XML >' < >

рд╣рдо рдПрдХ рдЕрдиреБрд░реЛрдз рднреЗрдЬрддреЗ рд╣реИрдВ:
curl --header "Content-Type: text/xml; charset=utf-8" -d '<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><m:identify xmlns:m="http://wiki.miko.ru/doc:1cajam:identifynumber"><m:Number>74952293042</m:Number></m:identify></soap:Body></soap:Envelope>' IP_WEB_SERVER_1C/TestComponenta/ws/1C_MIKO_identify_number.1cws


рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (1 рд╕реА рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╣реАрдВ рд╣реИ)ред

рдЙрджрд╛рд╣рд░рдг рд╕рд░реНрд╡рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛:
 <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header/> <soap:Body> <m:identifyResponse xmlns:m="http://wiki.miko.ru/doc:1cajam:identifynumber"> <m:return xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">OOO MIKO 74952293042</m:return> </m:identifyResponse> </soap:Body> </soap:Envelope> 


рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!

рдПрдХ AGI рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдПрдВ


рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, Askozia рдореЗрдВ рдмрд╣реБрдд рд╣реА рдЖрджрд┐рдо PHP рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ CURL рд╡рд┐рд╕реНрддрд╛рд░ рднреА рдирд╣реАрдВ рд╣реИ, рдФрд░ PHP рдПрдХ рдкреНрд░рд╛рдЪреАрди 4.4.9 рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдлрд┐рд░ рднреА, рд╣рдордиреЗ рд╕рднреА рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЛ рд╡рд┐рдлрд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдЗрд╕рд▓рд┐рдП рдХреГрдкрдпрд╛ рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рдХреЛрдб рдкрд░ рдЬреНрдпрд╛рджрд╛ рдХрд╕рдо рди рдЦрд╛рдПрдВред

рдХреЛрдб рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВ
 #!/usr/bin/php -f <?php require('phpagi.php'); //    // AGI phpagi.php,v 2.14 get_variable        $start_found = false; $end_found = false; $ret_value = ''; function tagStart($parse, $name, $attribs){ global $start_found; if($name == 'M:RETURN'){ // echo($name); $start_found = true; } } function tagEnd($parser, $name){ global $start_found; global $end_found; if($name == 'M:RETURN'){ $end_found = true; } } function dataGet($parser, $data){ global $start_found; global $ret_value; global $end_found; if($start_found&&!$end_found){ $ret_value = ''.$data; } } function parse_response($response){ //  xml  $xml_parse = xml_parser_create(); xml_set_element_handler($xml_parse, 'tagStart', 'tagEnd'); xml_set_character_data_handler ($xml_parse, 'dataGet'); xml_parse($xml_parse, $response); //  ,   xml_parser_free($xml_parse); } function GetVarChannnel($agi, $_varName){ $v = $agi->get_variable($_varName); if(!$v['result'] == 0){ $agi->verbose($_varName.' ---> '.$v['data'], 10); return $v['data']; } else{ $agi->verbose($_varName.' not set', 10); return ""; } } // GetVarChannnel($_agi, $_varName) //   agi,     phpagi.php $agi = new AGI(); //  ,     $path = '/TestComponenta/ws/1C_MIKO_identify_number.1cws'; $server = 'IP_WEB_SERVER_1C'; $port = 80; $number = GetVarChannnel($agi, "CALLERID(num)");; $user_1c= "1C_USERNAME"; $pass_1c= '1C_PASSWORD'; $auth = base64_encode($user_1c.':'.$pass_1c); $crlf = "\r\n"; //    -   SOAP  $xmlDocument = ( '<?xml version="1.0" encoding="UTF-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <m:identify xmlns:m="http://wiki.miko.ru/doc:1cajam:identifynumber"> <m:Number>'.$number.'</m:Number> </m:identify> </soap:Body> </soap:Envelope>'); $contentLength = strlen($xmlDocument); //   if (($http_soket = @fsockopen($server, $port, $errno, $errstr,1.5)) == false) return; $query = "POST $path HTTP/1.1" .$crlf; $query .= "Host: $server" .$crlf; $query .= "Content-Type: text/xml; charset=utf-8" .$crlf; $query .= "Authorization: Basic $auth" .$crlf; $query .= "Content-Length: $contentLength" .$crlf; $query .= $crlf; $query .= $xmlDocument; //     1 stream_set_timeout($http_soket, 1, 0); //   fputs($http_soket, $query); $result = ''; //   while ($line = fgets($http_soket)) $result .= $line; //    $result = substr($result, strpos($result, $crlf.$crlf) + 4); fclose($http_soket); //   parse_response($result); if($ret_value != ''){ $agi->set_variable('CALLERID(name)', $ret_value); //  1  ,       CDR } ?>тАЛ 



рд╣рдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ Askozia рд╕реЗ рдЬреЛрдбрд╝реЗрдВрдЧреЗ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЯреИрдм рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдПрдХ рдирдпрд╛ PHP рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЬреЛрдбрд╝реЗрдВред


"рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдЬрд┐рдХ" рдлрд╝реАрд▓реНрдб рдореЗрдВ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреЗрдХреНрд╕реНрдЯ рд╕реЗрдЯ рдХрд░реЗрдВред
"#! / Usr / bin / php -f" рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ - рд▓рд╛рдЗрди рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЦреБрдж рдЕрд╕реНрдХреЛрдЬрд┐рдпрд╛ рдЗрд╕реЗ рдЬреЛрдбрд╝ рджреЗрдЧрд╛ред рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдирд╛рдо рдФрд░ рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВред
рдЕрдм рдЖрдкрдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдкрддрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕ рддрд╛рд░рд╛рдВрдХрди рдХрдорд╛рдВрдб рдХрдВрд╕реЛрд▓ (CLI) рдХреЗ рд▓рд┐рдП, рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:

 # dialplan show 1334444@internal [ Context 'internal' created by 'pbx_config' ] '1334444' => 1. NoOp(internal calling application: AGI_App_CallerID) [pbx_config] 2. Set(CDR(InternalCalleridNum)=1334444) [pbx_config] 3. Goto(DIALPLAN-APPLICATION-176239923050fac4c5678b9,${EXTEN},1) [pbx_config] -= 1 extension (3 priorities) in 1 context. =- 


рд╣рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ DIALPLAN-APPLICATION-176239923050fac4c5678b9 рдХрд╛ рд╕рдВрджрд░реНрдн рд╕рдВрдЦреНрдпрд╛ 13344 рдореЗрдВ рд╣реИ

рд╣рдо рдЗрд╕ рд╕рдВрджрд░реНрдн рдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ рдХрд┐ рд╣рдорд╛рд░реА PHP рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХреНрдпрд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ:
 # dialplan show DIALPLAN-APPLICATION-176239923050fac4c5678b9 [ Context 'DIALPLAN-APPLICATION-176239923050fac4c5678b9' created by 'pbx_config' ] 'h' => 1. Hangup() 's' => 1. AGI(DIALPLAN-APPLICATION-176239923050fac4c5678b9.php) 2. Hangup() '_[0-9a-zA-Z*#]!' =>1. AGI(DIALPLAN-APPLICATION-176239923050fac4c5678b9.php) 2. Hangup() -= 3 extensions (5 priorities) in 1 context. =- 


рдЦреЛрдЬ рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдорд┐рд▓реА: DIALPLAN-APPLICATION-176239923050fac4c5678b9..tp

рд╣рдо рдЖрдиреЗ рд╡рд╛рд▓реЗ рдХреЙрд▓ рдорд╛рд░реНрдЧ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ рдФрд░ рдорд╛рд░реНрдЧ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдХрдорд╛рдВрдб рдХреЗ рдмреНрд▓реЙрдХ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:


рдХрдорд╛рдВрдб рдХреНрд╖реЗрддреНрд░ рдореЗрдВ AGI рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ (DIALPLAN-APPLICATION-176239923050fac4c5678b9.php)
рдЕрдВрдд рдореЗрдВ, рдореЗрд░рд╛ рдХреЙрд▓ рд░реВрдЯ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:


рдЗрд╕ рдорд╛рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдЖрдиреЗ рд╡рд╛рд▓реА рдХреЙрд▓ рдХреЗ рд╕рд╛рде, рдПрдХ AGI рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ 1C рд╕рд░реНрд╡рд░ рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рд░реНрд╡рд░ рдкреНрд░рддрд┐рд░реВрдкрд┐рдд рдирд╛рдо рдХреЛ рдкреНрд░реЗрд╖рд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдирд╛рдо CallerID рдлрд╝реАрд▓реНрдб рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдкрд░рд┐рдЪрдп рд╕реЗ рдкрд╣рд▓реЗ, рдХрд╣рд╛рдиреА рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:


рд╡реЗрдм-рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, 1 рд╕реА рд╕реЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рдирд╛рдо: рд╕реАрдЖрд░рдПрдо рд╕рд┐рд╕реНрдЯрдо рдЗрддрд┐рд╣рд╛рд╕ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдП:


рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдорд┐рд╕реНрдб рдХреЙрд▓ рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЧрдП рдИрдореЗрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рднреА Askozia рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реАрдкреВрд░реНрдг рд╣реЛ рдЧрдП рд╣реИрдВ, рдкрддреНрд░ рдХреЗ рд╣реЗрдбрд░ рдореЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛ рдирд╛рдо рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рд╕рд┐рд░реНрдл рдПрдХ рдирдВрдмрд░ рдерд╛ред


рдирд┐рд╖реНрдХрд░реНрд╖

рдпрд╣ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдЖрдкрдХреЛ рдЖрдИрдкреА рдкреАрдмреАрдПрдХреНрд╕ рдФрд░ 1 рд╕реА рдХреЗ рдСрдирд▓рд╛рдЗрди рдПрдХреАрдХрд░рдг рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЧреНрд░рд╛рд╣рдХ рдирд╛рдо рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рддрдХ рд╕реАрдорд┐рдд рдирд╣реАрдВ рд╣реИред рд╣рдо рдХреЙрд▓ рдХреЗ рд░реВрдЯ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреЙрд▓ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ, рдЧреНрд░рд╛рд╣рдХ рдХреЗ рдХрд╛рд░реНрдб рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдкреНрд░рдмрдВрдзрдХ рдХреЛ рддреБрд░рдВрдд рдЖрдИрд╡реАрдЖрд░ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рддреЗ рд╣реБрдП, рдЧреНрд░рд╛рд╣рдХ рдХреА рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рдкреНрд░рдХрд╛рд░ рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдЬреНрдЮрд╛рдкрди рд╕рдВрджреЗрд╢ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ:

Source: https://habr.com/ru/post/In166935/


All Articles