{"id":511,"date":"2013-09-16T15:20:32","date_gmt":"2013-09-16T09:20:32","guid":{"rendered":"http:\/\/alexeyka.zantsev.com\/?p=511"},"modified":"2013-09-16T16:12:29","modified_gmt":"2013-09-16T10:12:29","slug":"how-to-define-an-asterisk-module-by-function-name","status":"publish","type":"post","link":"https:\/\/alexeyka.zantsev.com\/?p=511","title":{"rendered":"How to define an Asterisk module by function name"},"content":{"rendered":"<p>Asterisk has a nice function <a href=\"https:\/\/wiki.asterisk.org\/wiki\/display\/AST\/Asterisk+11+Function_PITCH_SHIFT\" target=\"_blank\">PITCH_SHIFT<\/a>, which can modify caller&#8217;s\/callee&#8217;s voice. Let&#8217;s imagine, we have a system without autoloaded modules, and we need to find which module provides this function.<\/p>\n<p>1. Go to the astmoddir (I have a Debian system):<\/p>\n<pre>cd \/usr\/lib\/asterisk\/modules<\/pre>\n<p>2. Find.<\/p>\n<p><code>root@voiprouter1:\/usr\/lib\/asterisk\/modules# grep PITCH *<br \/>\nBinary file func_pitchshift.so matches<br \/>\nroot@voiprouter1:\/usr\/lib\/asterisk\/modules#<\/code><\/p>\n<p>3. We can also find the dependencies:<\/p>\n<p><code>root@voiprouter1:\/usr\/lib\/asterisk\/modules# ldd func_pitchshift.so<br \/>\n\tlinux-gate.so.1 =>  (0xb776e000)<br \/>\n\tlibpthread.so.0 => \/lib\/i386-linux-gnu\/i686\/cmov\/libpthread.so.0 (0xb7747000)<br \/>\n\tlibc.so.6 => \/lib\/i386-linux-gnu\/i686\/cmov\/libc.so.6 (0xb75e4000)<br \/>\n\t\/lib\/ld-linux.so.2 (0xb776f000)<\/code><\/p>\n<p>4. That&#8217;s it! <a href=\"http:\/\/asterisk-support.ru\/question\/48416\/kak-uznat-kakoi-modul-otvechaet-za-konkretnuiu\/\" target=\"_blank\">Thanks to meral<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Asterisk has a nice function PITCH_SHIFT, which can modify caller&#8217;s\/callee&#8217;s voice. Let&#8217;s imagine, we have a system without autoloaded modules, and we need to find which module provides this function. 1. Go to the astmoddir (I have a Debian system): cd \/usr\/lib\/asterisk\/modules 2. Find. root@voiprouter1:\/usr\/lib\/asterisk\/modules# grep PITCH * Binary file func_pitchshift.so matches root@voiprouter1:\/usr\/lib\/asterisk\/modules# 3. We [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[132],"class_list":["post-511","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-modules"],"_links":{"self":[{"href":"https:\/\/alexeyka.zantsev.com\/index.php?rest_route=\/wp\/v2\/posts\/511","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alexeyka.zantsev.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/alexeyka.zantsev.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/alexeyka.zantsev.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/alexeyka.zantsev.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=511"}],"version-history":[{"count":5,"href":"https:\/\/alexeyka.zantsev.com\/index.php?rest_route=\/wp\/v2\/posts\/511\/revisions"}],"predecessor-version":[{"id":518,"href":"https:\/\/alexeyka.zantsev.com\/index.php?rest_route=\/wp\/v2\/posts\/511\/revisions\/518"}],"wp:attachment":[{"href":"https:\/\/alexeyka.zantsev.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=511"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alexeyka.zantsev.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=511"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alexeyka.zantsev.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=511"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}