рдХрд┐рд╕рдиреЗ рдлреЛрди рдХрд┐рдпрд╛? рдпрд╛ рд╕реЗрд▓ рд╡рд╛рдкрд╕ рддрд╛рд░рд╛рдВрдХрди рдХреЗ рд▓рд┐рдП


рдЕрдХреНрд╕рд░ рдЖрдк рдЦреБрдж рдХреЛ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкрд╛рддреЗ рд╣реИрдВ рдЬрдм рдЖрдк рдЕрдкрдиреЗ рдореЛрдмрд╛рдЗрд▓ рдлреЛрди рдкрд░ рдХрд┐рд╕реА рд╢рд╣рд░ рд╕реЗ рдорд┐рд╕реНрдб рдХреЙрд▓ рдкрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЬрдм рдЖрдк рдХреЙрд▓ рдмреИрдХ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХрд┐рд╕реА рдХрдВрдкрдиреА рдХреЗ рд╡реЙрдпрд╕ рдореЗрдиреНрдпреВ рдореЗрдВ рдкрд╣реБрдВрдЪ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕рдиреЗ рдХреЙрд▓ рдХрд┐рдпрд╛? рдореИрдВ рдЕрдХреНрд╕рд░, рд╕рд╛рде рд╣реА рд╕рд╛рде рд╣рдорд╛рд░реА рдХрдВрдкрдиреА рдХреЗ рдЧреНрд░рд╛рд╣рдХ рд╣рд░ рджрд┐рди рдЗрд╕рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реИрдВ ... рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ред рдмрд╛рдж рдХреА рд╕рднреА рдХреНрд░рд┐рдпрд╛рдПрдВ trixbox v2.8.0.4 рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИрдВ (рдХреБрдЫ рд╕рдорд╛рдпреЛрдЬрди рдХреЗ рд╕рд╛рде, рдпрд╛, рд╢рд╛рдпрдж, рдЙрдирдХреЗ рдмрд┐рдирд╛ рднреА, рдЗрд╕реЗ рдЕрдиреНрдп рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)

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

рддрд╛рд░рд╛рдВрдХрди рд╣реЛрд╕реНрдЯ рдкрд░ mysql рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рддреБрд░рдВрдд рдПрдХ рдПрдХрд▓ "cdr" рдкреНрд▓реЗрдЯ рдХреЗ рд╕рд╛рде "asteriskcdrdb" рдбреЗрдЯрд╛рдмреЗрд╕ рджреЗрдЦрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд░рд┐рдХреЙрд░реНрдб рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ
рдЫрд╡рд┐

рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рдХреЙрд▓рдореЛрдВ рдореЗрдВ рд╕реЗ:


рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдкрд░, рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд┐рд▓рддреЗ рд╣реИрдВ:
SELECT `channel` FROM cdr WHERE `dst`='${CALLERID(number)}' ORDER BY `calldate` DESC LIMIT 1
рд╣рдо рдЪреИрдирд▓ рдлрд╝реАрд▓реНрдб рдХреЛ cdr рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдбрд╛рдпрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдирдВрдмрд░ рд╡рд░реНрддрдорд╛рди рдХреЙрд▓рд░реАрдб рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рдЕрд╡рд░реЛрд╣реА рдХреНрд░рдо рдореЗрдВ рд╕реЙрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдЕрдВрддрд┐рдо рд░рд┐рдХреЙрд░реНрдб рдорд┐рд▓рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред рдЖрдЦрд┐рд░реА рдирдВрдмрд░ рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдПрдХ рдХреЙрд▓ рдерд╛ред

рд╣рдо рдХрд╕реНрдЯрдо рддрд╛рд░рд╛рдВрдХрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдирд┐рдореНрди рдХреЛрдб рдХреЛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди_custom.conf рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╡рд┐рд╕реНрддрд╛рд░ 456 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  [рдХрд╕реНрдЯрдо-рд╕реЗ-рдореЛрдмрд╛рдЗрд▓]
 exten => 456.1, рдЙрддреНрддрд░ ()
 exten => 456, n, MYSQL (рдХрдиреЗрдХреНрдЯ рдХреЛрдирд┐рдб рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рд░реВрдЯ рдкрд╛рд╕ рддрд╛рд░рд╛рдВрдХрди рдЪрд┐рд╣реНрди)
 exten => 456, n, MYSQL (рдХреНрд╡реЗрд░реА рдкрд░рд┐рдгрд╛рдо $ {рдХреЙрдирдбрд┐рдб) рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ `рдЪреИрдирд▓` рд╕реЗ cdr рдпрд╣рд╛рдБ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ` dst` = '$ {CALLERID (рд╕рдВрдЦреНрдпрд╛)}' рдЖрджреЗрд╢ рджреНрд╡рд╛рд░рд╛ 'рдХреИрд▓реАрдбреЗрдЯ `DESC рд╕реАрдорд╛ 1)
 exten => 456, n, MYSQL ($ $ $ {рдкрд░рд┐рдгрд╛рдо} рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ)
 exten => 456, n, MYSQL (рд╕реНрдкрд╖реНрдЯ $ {рдкрд░рд┐рдгрд╛рдореА})
 exten => 456, n, MYSQL (рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ $ {conid})
 exten => 456, n, Set (CHAN = $ {SHELL (echo $ {var} | tr -d '\ n') sed -e 's /.*\ /\(.*\)\-.*/ \ 1 / рдЬреА ')})
 exten => 456, n, рд╕реЗрдЯ (i = 0)
 exten => 456, n, рд╕реЗрдЯ (COUNTER = $ {LEN ($ {CHAN})})
 exten => 456, n, рдЬрдмрдХрд┐ ($ [$ {i} <$ {COUNTER}])
 exten => 456, n, рдкреНрд▓реЗрдмреИрдХ (рдЕрдВрдХ / $ {CHAN: $ {i}: 1})
 exten => 456, n, рд╕реЗрдЯ (i = $ [$ {i} + 1])
 exten => 456, n, рдПрдВрдбрд╡реНрд╣реАрд▓ ()
 exten => 456, n, рдЧреЛрдЯреЛ (рдЖрдВрддрд░рд┐рдХ рд╕реЗ, $ {CHAN}, 1) 


  1. рдХреЙрд▓ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдВ
  2. рд╣рдо рд░реВрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, рдкрд╛рд╕ рдкрд╛рд╕рд╡рд░реНрдб, рдФрд░ рддрд╛рд░рд╛рдВрдХрди рдЪрд┐рд╣реНрди рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВ
  3. рд╣рдо рдЕрдиреБрд░реЛрдз рдХреЛ рдкреВрд░рд╛ рдХрд░рддреЗ рд╣реИрдВ
  4. рд╣рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддрд╛ рд╣реИ, var рдореЗрдВ рд▓рд┐рдЦреЗрдВ
  5. рд╕реНрдореГрддрд┐ рдХреЛ рдЕрдиреБрд░реЛрдз рд╕реЗ рдореБрдХреНрдд рдХрд░реЗрдВ
  6. рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ
  7. рдЪреИрдирд▓ рдлрд╝реАрд▓реНрдб рдореЗрдВ рди рдХреЗрд╡рд▓ рдЪреИрдирд▓ рдирдВрдмрд░ рд╣реЛрддрд╛ рд╣реИ, рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХреЛ рд╕реАрдб рджреНрд╡рд╛рд░рд╛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг: SIP / 160-0000000ред рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд╕рд╛рде, рд╣рдо "/" рдФрд░ рдЙрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХреА рд╕рднреА рдЪреАрдЬрд╝реЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рд╕рд╛рде "-" рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рдж рдХрд╛ рд╕рдм рдХреБрдЫ), рд╕рд╛рде рд╣реА рд╕рд╛рде рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрддред рд▓рд╛рдЗрди рдлрд╝реАрдб tr
  8. рдЪрдХреНрд░ рдХреЗ рд▓рд┐рдП рд╕реВрдЪрдХрд╛рдВрдХ
  9. рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдирдВрдмрд░ рдХреА рд▓рдВрдмрд╛рдИ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
  10. рдЬрдмрдХрд┐ рд╕реВрдЪрдХрд╛рдВрдХ рд╕рдВрдЦреНрдпрд╛ рдХреА рд▓рдВрдмрд╛рдИ рд╕реЗ рдХрдо рд╣реИ
  11. рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рд╡рд░реНрддрдорд╛рди рдЕрдВрдХ рдХрд╣реЗрдВ
  12. рд╣рдо рдПрдХ-рдПрдХ рдХрд░рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдмрдврд╝рд╛рддреЗ рд╣реИрдВ
  13. рдЪрдХреНрд░ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ
  14. рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛


рдХреЛрдб рд╕рднреА рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рдЕрдм рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддрд╛рд░рд╛рдВрдХрд┐рдд рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред Trixbox рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкрд░ рдЬрд╛рдПрдВред
PBX - PBX рд╕реЗрдЯрд┐рдВрдЧреНрд╕ - рдЯреВрд▓реНрд╕ - рдХрд╕реНрдЯрдо рдбреЗрд╕реНрдЯрд┐рдиреЗрд╢рдВрд╕ рдФрд░ рдРрдб рдХрд╕реНрдЯрдо рдбреЗрд╕реНрдЯрд┐рдиреЗрд╢рди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рджреЛ рдлрд╝реАрд▓реНрдб рднрд░реЗрдВ:
рдХрд╕реНрдЯрдо рдбреЗрд╕реНрдЯрд┐рдиреЗрд╢рди: рдХрд╕реНрдЯрдо-рд╕реЗ-рдореЛрдмрд╛рдЗрд▓, 456.1 # рдЬрд╣рд╛рдВ рдХрд╕реНрдЯрдо-рд╕реЗ-рдореЛрдмрд╛рдЗрд▓ рдореЗрдВ рдХрд╕реНрдЯрдо рдХреЛрдб рдХрд╛ рд╣реЗрдбрд░ рд╣реИ custom_extensions.conf, 456 рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдирдВрдмрд░ рд╣реИ, 1 рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реИ
Descritpion: рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ 456 рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдПред

Submit Changes рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдирд╛ рди рднреВрд▓реЗрдВред
рдЖрдИрд╡реАрдЖрд░ рд╡реЙрдпрд╕ рдореЗрдиреВ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдВрдЦреНрдпрд╛ "5" рдкрд░ рдХрд╕реНрдЯрдо рдбреЗрд╕реНрдЯрд┐рдиреЗрд╢рди рдЖрдЗрдЯрдо: рдмрд╕ рдмрдирд╛рдП рдЧрдП 456 рдХреЗ рд╕рд╛рдеред

рдкрд░рд┐рд╡рд░реНрддрди рд╕рдмрдорд┐рдЯ рдХрд░реЗрдВред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░рд┐рд╡рд░реНрддрди рд▓рд╛рдЧреВ рдХрд░реЗрдВ рдФрд░ рдкреБрдирдГ рд▓реЛрдб рдХреЗ рд╕рд╛рде рдЬрд╛рд░реА рд░рдЦреЗрдВред рд╣рдо рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдЖрд╡реЗрджрди рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдЕрдм, рд╣рдорд╛рд░реА рдХрдВрдкрдиреА рдХрд╛ рдирдВрдмрд░ рдбрд╛рдпрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЧреНрд░рд╛рд╣рдХ рдХреЗ рдкрд╛рд╕ рд╣рдореЗрд╢рд╛ рд╡реЙрдпрд╕ рдореЗрдиреВ рдореЗрдВ 5 рдирдВрдмрд░ рджрдмрд╛рдХрд░ рдЕрд╡рд╕рд░ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЙрд╕реЗ рдХреЙрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЕрдВрддрд┐рдо рдирдВрдмрд░ рд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реИред

UPD1 ODBCред рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд▓реНрджреА рд╕реЗ рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рд╕реЗ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓рд╛ рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдореМрдЬреВрджрд╛ рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдУрдбреАрдмреАрд╕реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реАрдбреАрдЖрд░ рдХрд╣рд╛рдВ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрддрд╛ рд╣реИред рдЬреИрд╕реЗ рд╣реА рд╕рдордп рд╣реЛрдЧрд╛ рдореИрдВ рдЕрдкрдбреЗрдЯ рднреА рджреЗрдЦреВрдВрдЧрд╛ред рдлрд┐рд▓рд╣рд╛рд▓, рдореИрдВрдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдПрдХ рдирдпрд╛ рдХрдиреЗрдХреНрд╢рди рдЬреЛрдбрд╝рд╛ рд╣реИ рдФрд░ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред

рдЖрд╡рд╢реНрдпрдХ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
yum install mysql-connector-odbc рдХрд░реЗрдВ, рдХреНрдпрд╛ рдХреЛрдИ рд╕рдордЭрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ cdr рдиреЗ рдЗрд╕ рдкреИрдХреЗрдЬ рдХреЗ рдмрд┐рдирд╛ рдХреИрд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ (рдХреНрдпрд╛ рдпрд╣ odbc рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ?), рдпрд╣ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдирд╣реАрдВ рдерд╛ред

рдЕрдЧрд▓рд╛, рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЬреЛрдбрд╝рдХрд░ рдлрд╝рд╛рдЗрд▓ /etc/odbcinst.ini рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ
 [MySQL]
 рд╡рд┐рд╡рд░рдг = MySQL рдХреЗ рд▓рд┐рдП ODBC
 рдЪрд╛рд▓рдХ = /usr/lib/libmyodbc3.so
 рд╕реЗрдЯрдЕрдк = /usr/lib/libodbcmyS.so
 FileUsage = 1

* рдкрде рдФрд░ рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХрд╛ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдкрд╛рд▓рди рдХрд░реЗрдВ, рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдУрдбрдмреЗрдХ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рднреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕реА рддрд░рд╣, /etc/odbc.ini рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ
 [рддрд╛рд░рд╛рдВрдХрди-рдХрдиреЗрдХреНрдЯрд░]
 рд╡рд┐рд╡рд░рдг = 'рддрд╛рд░рд╛рдВрдХрди рдЪрд┐рд╣реНрди' рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП MySQL рдХрдиреЗрдХреНрд╢рди
 рдЪрд╛рд▓рдХ = MySQL
 рд╕рд░реНрд╡рд░ = рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ
 рдбреЗрдЯрд╛рдмреЗрд╕ = рддрд╛рд░рд╛рдВрдХрди рдЪрд┐рд╣реНрди
 рдпреВрдЖрдИрдбреА = рдЬрдбрд╝
 рдкреАрдбрдмреНрд▓реНрдпреВрдбреА = рдкрд╛рд╕
 рдкреЛрд░реНрдЯ = 3306
 SOCKET = / var / lib / mysql / mysql.sock

* рдпрд╣рд╛рдВ рд╣рдо рдЖрдкрдХреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рднрд░рддреЗ рд╣реИрдВред рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ, рддрдерд╛рдХрдерд┐рдд рдбреАрдПрд╕рдПрди рдХреЛ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рднрд░реЗрдВ рдФрд░ рдпрд╛рдж рд░рдЦреЗрдВред

рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ, рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:
  isql -v рддрд╛рд░рд╛рдВрдХрди-рд╕рдВрдмрдВрдзрдХ 

рдпрджрд┐ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдорд┐рд▓рдирд╛ рдЪрд╛рд╣рд┐рдП:
 + --------------------------------------- +
 |  рдХрдиреЗрдХреНрдЯ рд╣реЛ рдЧрдпрд╛!  |
 |  |
 |  sql- рдмрдпрд╛рди |
 |  рдорджрдж [tablename] |
 |  рдЫреЛрдбрд╝ рджрд┐рдпрд╛ |
 |  |
 + --------------------------------------- +


рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ рдЖрджреЗрд╢ рдХреЗ рд╕рд╛рде рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ

рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ /etc/asterisk/res_odbc.conf
 [Asterisk2mysql]
 рд╕рдХреНрд╖рдо => рд╣рд╛рдБ
 dsn => рддрд╛рд░рдХ-рдпреЛрдЬрдХ;  /etc/odbc.ini рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛
 рдкреНрд░реА-рдХрдиреЗрдХреНрдЯ => рд╣рд╛рдВ


рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ /etc/asterisk/func_odbc.conf рдЬреЛрдбрд╝реЗрдВ
 [FROMMOBILE]
 dsn = asterisk2mysql;  /etc/asterisk/res_odbc.conf рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛    
 readsql = cdr рдХрд╛ рдЪрдпрди рдЪреИрдирд▓ рд╕реЗ рдХрд░реЗрдВ рдЬрд╣рд╛рдВ dst = $ {ARG1} ORDER BY calldate DESC LIMIT 1;  рдбрд╛рдпрд▓рд░ рд╕реЗ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдкреИрд░рд╛рдореАрдЯрд░ ARG1 рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ


рдЦреИрд░, рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдбрд╛рдпрд▓рдкреНрд▓рд╛рди
 [рдХрд╕реНрдЯрдо-рд╕реЗ-рдореЛрдмрд╛рдЗрд▓]
 exten => 456.1, рдЙрддреНрддрд░ ()
 exten => 456, n, Set (CHAN = $ {SHELL (echo $ {ODBC_FROMMOBILE ($ {CALLERID (рдирдВрдмрд░)}))} | tr -d "\ n" | sed -e \ _ \ _ \ _ () ред * \ _ \ _ред * / \ / 1 / g ')})
 exten => 456, n, рд╕реЗрдЯ (i = 0)
 exten => 456, n, рд╕реЗрдЯ (COUNTER = $ {LEN ($ {CHAN})})
 exten => 456, n, рдЬрдмрдХрд┐ ($ [$ {i} <$ {COUNTER}])
 exten => 456, n, рдкреНрд▓реЗрдмреИрдХ (рдЕрдВрдХ / $ {CHAN: $ {i}: 1})
 exten => 456, n, рд╕реЗрдЯ (i = $ [$ {i} + 1])
 exten => 456, n, рдПрдВрдбрд╡реНрд╣реАрд▓ ()
 exten => 456, n, рдЧреЛрдЯреЛ (рдЖрдВрддрд░рд┐рдХ рд╕реЗ, $ {CHAN}, 1)
 exten => 456, n, Hangup ()


$ {ODBC_FROMMOBILE ($ {CALLERID (рд╕рдВрдЦреНрдпрд╛)})} - рдХреНрд╡реЗрд░реА рд╕реНрдЯреНрд░рд┐рдВрдЧ
FROMMOBILE рд╣рдо рдлрд╝рд╛рдЗрд▓ /etc/asterisk/func_odbc.conf рд╕реЗ рд▓реЗрддреЗ рд╣реИрдВ
рдХреЛрд╖реНрдардХ рдореЗрдВ, рдЖрдк рдХреЙрдорд╛ рдореЗрдВ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, /etc/asterisk/func_odbc.conf рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЕрдиреБрд░реЛрдз рдореЗрдВ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдЪрд░ ARG1, ARG2, рдЖрджрд┐ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдХреЗрд╡рд▓ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдкреЗрд╢реЗрд╡рд░реЛрдВ: рдбрд╛рдпрд▓рдкреНрд▓рд╛рди рдХреЛрдб рдореЗрдВ рдХрдореА рдЖрдИ рд╣реИ, рдХрд╛рдо рдХреА рдЧрддрд┐ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИред

UPD2ред рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИред рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдПрдХ рдХрдВрдкрдиреА рдореЗрдВ рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реИред рдФрд░ рдПрдХ рд╕реНрдерд┐рддрд┐ рддрдм рдкреИрджрд╛ рд╣реЛрддреА рд╣реИ рдЬрдм рдХреЛрдИ рдПрдХ рдЪреВрдХ рд╣реЛ рдЬрд╛рддреА рд╣реИ рдФрд░ рдЙрд╕реА рдХреНрд╖рдг рдХреЛрдИ рджреВрд╕рд░рд╛ рд╡реНрдпрдХреНрддрд┐ рдЙрд╕реЗ рдмреБрд▓рд╛ рд░рд╣рд╛ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╡рд╣ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реЛрддрд╛ рд╣реИред рд╡рд╛рд░реНрддрд╛рд▓рд╛рдк рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рд╣рдорд╛рд░реЗ рд╡рд░реНрддрдорд╛рди рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдЕрдВрддрд┐рдо рдХреЙрд▓рд░ рдорд┐рд▓реЗрдЧрд╛, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╡рд╣ рдкрд╣рд▓реЗ рд╣реА рдмрд╛рдд рдХрд░ рдЪреБрдХрд╛ рд╣реИ рдФрд░ рдпрд╣ рдирд╣реАрдВ рдЬрд╛рди рдкрд╛рдПрдЧрд╛ рдХрд┐ рдЙрд╕реЗ рдкрд╣рд▓реЗ рдХрд┐рд╕рдиреЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдерд╛ред рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдВрдЪреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдЕрдиреБрд░реЛрдз рдХреЛ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВрдЧреЗред

рдбрд╛рдпрд▓рдкреИрди рд╕реЗ MySQL рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдХреЛрдб рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реЛрдЧрд╛:
 [рдХрд╕реНрдЯрдо-рд╕реЗ-рдореЛрдмрд╛рдЗрд▓]
 exten => 456.1, рдЙрддреНрддрд░ ()
 exten => 456, n, MYSQL (рдХрдиреЗрдХреНрдЯ рдХреЛрдирд┐рдб рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рд░реВрдЯ рдкрд╛рд╕ рддрд╛рд░рд╛рдВрдХрди рдЪрд┐рд╣реНрди)
 exten => 456, n, MYSQL (рдХреНрд╡реЗрд░реА рдкрд░рд┐рдгрд╛рдо $ {рдХреЙрдирдбрд┐рдб) рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ `рдЪреИрдирд▓` FROM` cdr` WHERE `dst` = '$ {CALLERID (рд╕рдВрдЦреНрдпрд╛)}' рдФрд░ 'рд╕реНрд╡рднрд╛рд╡ = =" NO ANSWER "рдпрд╛` dst` = '$ {CALLERID (рд╕рдВрдЦреНрдпрд╛)}' рдФрд░ `рд╕реНрд╡рднрд╛рд╡` =" ANSWERED "рдФрд░` рдмрд┐рд▓рд╕рдХ` <"4" ORDER BY `calldate` DESC LIMIT 1)
 exten => 456, n, MYSQL ($ $ $ {рдкрд░рд┐рдгрд╛рдо} рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ)
 exten => 456, n, MYSQL (рд╕реНрдкрд╖реНрдЯ $ {рдкрд░рд┐рдгрд╛рдореА})
 exten => 456, n, MYSQL (рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ $ {conid})
 exten => 456, n, Set (CHAN = $ {SHELL (echo $ {var} | tr -d '\ n') sed -e 's /.*\ /\(.*\)\-.*/ \ 1 / рдЬреА ')})
 exten => 456, n, рд╕реЗрдЯ (i = 0)
 exten => 456, n, рд╕реЗрдЯ (COUNTER = $ {LEN ($ {CHAN})})
 exten => 456, n, рдЬрдмрдХрд┐ ($ [$ {i} <$ {COUNTER}])
 exten => 456, n, рдкреНрд▓реЗрдмреИрдХ (рдЕрдВрдХ / $ {CHAN: $ {i}: 1})
 exten => 456, n, рд╕реЗрдЯ (i = $ [$ {i} + 1])
 exten => 456, n, рдПрдВрдбрд╡реНрд╣реАрд▓ ()
 exten => 456, n, рдЧреЛрдЯреЛ (рдЖрдВрддрд░рд┐рдХ рд╕реЗ, $ {CHAN}, 1)


ODBC рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, /etc/asterisk/func_odbc.conf рдореЗрдВ рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ
 [FROMMOBILE]
 dsn = asterisk2mysql;  /etc/asterisk/res_odbc.conf рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛    
 readsql = cdr рдХреЗ рдЪреИрдирд▓ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдЬрд╣рд╛рдВ рд╕реЗ dst = $ {ARG1} рдФрд░ рд╕реНрд╡рднрд╛рд╡ = NO ANSWER рдпрд╛ dst = $ {ARG1} рдФрд░ рд╡рд┐рд╡рд╛рдж = ANSWERED рдФрд░ рдмрд┐рд▓реНрд▓реЗ [] ORDER BY calldate DESC LIMIT 1; 


рдбрд╛рдпрд▓рдкреНрд▓рд╛рди UPD1 рдореЗрдВ рд╣реА рд░рд╣рддрд╛ рд╣реИред

UPD3 рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЕрд╡рд▓реЛрдХрди рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рд╕реНрдерд┐рддрд┐ рдкреИрджрд╛ рд╣реБрдИред рдПрдХ рдЕрдЪрд░рдЬ рдкрд░, рдХрдИ рдШреВрдВрдЯ рдЪрдбреНрдбреА рдФрд░, рддрджрдиреБрд╕рд╛рд░, рдХрдИ рдХрдВрдкрдирд┐рдпрд╛рдВ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдХрдВрдкрдиреА рдХрд╛ рдЕрдкрдирд╛ рдХреЙрд▓рдЧрд░реНрд▓ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рд╣рдо рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдХрдВрдкрдиреА рдХрд╛ рдлрд╝реЛрди рдирдВрдмрд░ рддреАрди рдХрдВрдкрдирд┐рдпреЛрдВ рд╕реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рд╣рдо рдЪрд╛рд╣реЗ рдЬрд┐рд╕ рд╢рд╣рд░ рдХрд╛ рдирдВрдмрд░ рд╡рд╛рдкрд╕ рдХреЙрд▓ рдХрд░реЗрдВ, рд╣рдо рдХреЗрд╡рд▓ рдЕрдВрддрд┐рдо рдХреЙрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдпрд╣ рдЙрд╕ рдХрдВрдкрдиреА рдХрд╛ рддрдереНрдп рдирд╣реАрдВ рд╣реИред рд╕рдорд╛рдзрд╛рди рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИред рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЪрдпрди рдХреЛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рддреНрдпрд╛рдкрди рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ - рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдЗрд╕ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдХреЙрд▓рд░реАрдб рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рджреЛрдиреЛрдВ рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рдЕрдиреБрд░реЛрдз рдореЗрдВ, `src` = '$ {FROM_DID} рдЬреЛрдбрд╝реЗрдВ:
  рдЪрдпрди рдХрд░реЗрдВ `рдЪреИрдирд▓` рд╕реЗ cdr WHERE` dst` = '$ {CALLERID (рд╕рдВрдЦреНрдпрд╛)}' рдФрд░` src` = '$ {FROM_DID}' ORDER BY` calldate` DESK LIMIT 1 

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


All Articles