Codec issue - Out of G.729 Encoder Licenses

I have an asterisk server with no more than 4 extensions.
The server was working ok, but now everytime i try to call i don;t hear anything. In the log i see an error.
Jul 31 15:40:04 VERBOSE[19698] logger.c: – Executing VoiceMailMain(“SIP/2101-d1fd”, “2101@”) in new stack
Jul 31 15:40:04 DEBUG[19698] channel.c: Set channel SIP/2101-d1fd to write format gsm
Jul 31 15:40:04 DEBUG[19698] rtp.c: Ooh, format changed from unknown to g729
Jul 31 15:40:04 DEBUG[19698] channel.c: Scheduling timer at 160 sample intervals
Jul 31 15:40:04 VERBOSE[19698] logger.c: – Playing ‘vm-login’ (language ‘en’)
Jul 31 15:40:04 WARNING[19698] codec_g729.c: Out of G.729 Encoder Licenses!
Jul 31 15:40:04 WARNING[19698] codec_g729.c: Out of G.729 Encoder Licenses!
Jul 31 15:40:04 WARNING[19698] codec_g729.c: Out of G.729 Encoder Licenses!
Jul 31 15:40:04 WARNING[19698] codec_g729.c: Out of G.729 Encoder Licenses!
Jul 31 15:40:04 WARNING[19698] codec_g729.c: Out of G.729 Encoder Licenses!
Jul 31 15:40:04 WARNING[19698] codec_g729.c: Out of G.729 Encoder Licenses!

the last line repeats 90 times.

I have 2 g729 licenses, I restart the server and perform a show g729 and i see this.
0/0 encoders/decoders of 2 licensed channels are currently in use
but after i make one call then i see this
2/0 encoders/decoders of 2 licensed channels are currently in use

What can be the problem with the codec?

I have the same problem with 5 licences!

If you found something let me know, I switch the PBX from asterisk to a Nortel BCM because of this issue. Looks like asterisk is not ready for a business production site

In my case I have 4 license. I have TDM with 3 FXO and 1 FXS and 1 XTENPRO with ULAW only codec. I disable the 2 FXO. So, I wont have problem with license count. I tried to call from my XTENPRO to a Cisco gateway with G729 codec and its working. When “show g729” I have 1/1 encoder/decoder count. But when call originates from either the FXS and FXO it shoots to 4/1 encoder/decoder count. Hence, resulting to 1 way audio communication.

I’ve been using the latest Trixbox version in this case. Which modules is messing with the license count?

Looks like this still a mistery. I have write in every forum but no answare. Digium oviously have no clue on this issue. I think this is a problem with the codec translator. My problem is when calls are originated from a non g729 device to a g729 trunk.

Would you care to let us know what version of asterisk?

FWIW, it will take two licenses per phone call. One license will be used to communicate between you and asterisk and the other license will be used to communicate between asterisk and the other person.

asterisk1*CLI> show version
Asterisk 1.2.9.1 svn rev 34876 built by root @ localhost.localdomain on a i686 running Linux on 2006-07-25 16:35:44 UTC

Hi, this is really making me scary. in couple of weeks i am moving my asterisk to production.

i will watch this thread if you guys find any solution for this problem.

thanks

How many license did I need in this scenario :

Polycom → Ulaw → * —> G729 —> SIP Provider

Do I need 1 license by channels or 1 license by calls ?

How many license did I need in this scenario :

Polycom → Ulaw → * —> G729 —> SIP Provider

Do I need 1 license by channels or 1 license by calls ?[/quote]

The way I understand it is that you would need 1 license in this scenario. However, if you were to receive another call from your provider, or try to place another call, you would need additional licenses.

Right now, unfortunately, asterisk doesn’t fall back to a valid codec, it just doesn’t pass audio. It would be better if, once asterisk runs out of licenses, it would fallback to either gsm or ulaw (preferably something configurable).

There was some discussion about the different scenarios and what needs a license and what doesn’t on the asterisk-users mailing list recently. You might try Googling that and see what you come up with.

Point clarification with my case.

XTEPRO(ULAW) → ASTERISK —> CISCO(G729) , this works
CISCO(G729) ----> ASTERISK —> XTEN(ULAW), this works

Digium TDMFXS —> ASTERISK —> CISCO(G729) , 1 way audio.
Cisco(G729) -------> ASTERISK ----> Digium TDMFXO, 1 way audio.

In my case, calls the involves the Digium always results to 1 way, license count always shoots to 4/1 thus I’m getting the Out of G.729 encoder license.

Btw, this is a test server …so there’s no other call on the server except my call, so there’s something messing with license count.

make one of the “failed” calls, and while it’s in progress, use “CLI > show channels” to see how many channels you have in use. it could be your dialplan that’s causing the excessive codec usage.

Hi all,

I considered checking the dialplan to see what is going. Btw, as a recap. I’m running a Trixbox version 1.1.1 with Freepbx, Asterisk is 1.2.11 svn rev 40948.
I inserted several Wait(8) and do “show g729” in the CLI during the Wait(8). So what I notice is, it wont shoot to 4/1 count until the far end answer. Also, I forgot to tell you earlier that the count will change and stay at 4/0 when the call hangup.

So to convince myself that this what is going on. I configured the FXS context in such away it immediately calls the XTENPRO. See the log below,

asterisk1CLI> unload codec_g729a.so
== Unregistered translator ‘lintog729’ from format slin to g729
== Unregistered translator ‘g729tolin’ from format g729 to slin
asterisk1
CLI> load codec_g729a.so
Loaded /usr/lib/asterisk/modules/codec_g729a.so => (Annex A/B (floating point)
G.729 Codec (optimized for i386))
== G.729 Host-ID: c9:59:f6:14:84:f2:e8:6b:4a:63:2e:2b:f1:36:db:4b:f1:75:ee:63
== Found license ‘G729-XXXXXXX’ providing 4 channels
== Found total of 4 G.729 licenses
== Registered translator ‘g729tolin’ from format g729 to slin, cost 9
== Registered translator ‘lintog729’ from format slin to g729, cost 41
– Executing Wait(“Zap/4-1”, “8”) in new stack
asterisk1CLI> show g729
0/0 encoders/decoders of 4 licensed channels are currently in use
asterisk1
CLI> show g729
0/0 encoders/decoders of 4 licensed channels are currently in use
asterisk1CLI> show g729
0/0 encoders/decoders of 4 licensed channels are currently in use
asterisk1
CLI> show g729
0/0 encoders/decoders of 4 licensed channels are currently in use
– Executing Dial(“Zap/4-1”, “SIP/555||tr”) in new stack
– Called 555
– SIP/555-08773928 is ringing
asterisk1CLI> show g729
0/0 encoders/decoders of 4 licensed channels are currently in use
asterisk1
CLI> show g729
0/0 encoders/decoders of 4 licensed channels are currently in use
– SIP/555-08773928 answered Zap/4-1
[JB LOG] fixed jitterbuffer created on channel Zap/4-1
asterisk1CLI> show g729
4/1 encoders/decoders of 4 licensed channels are currently in use
asterisk1
CLI> show g729
4/1 encoders/decoders of 4 licensed channels are currently in use
== Spawn extension (custom-mydialer, s, 2) exited non-zero on ‘Zap/4-1’
– Hungup ‘Zap/4-1’
[JB LOG] fixed jitterbuffer destroyed on channel Zap/4-1
asterisk1CLI> show g729
4/0 encoders/decoders of 4 licensed channels are currently in use
asterisk1
CLI> show g729
4/0 encoders/decoders of 4 licensed channels are currently in use

Here’s a show channels before and during a “fatal” call (to voicemail) with a few show g729’s sprinkled in for further clarification of where we are at:

asterisk1*CLI> show channels Channel Location State Application(Data) 0 active channels 0 active calls -- Executing Answer("SIP/500-677f", "") in new stack -- Executing Wait("SIP/500-677f", "1") in new stack -- Executing Macro("SIP/500-677f", "user-callerid|") in new stack -- Executing GotoIf("SIP/500-677f", "0?report") in new stack -- Executing GotoIf("SIP/500-677f", "0?start") in new stack -- Executing Set("SIP/500-677f", "REALCALLERIDNUM=500") in new stack -- Executing NoOp("SIP/500-677f", "REALCALLERIDNUM is 500") in new stack -- Executing Set("SIP/500-677f", "AMPUSER=500") in new stack -- Executing Set("SIP/500-677f", "AMPUSERCIDNAME=Cordless -home") in new stack -- Executing GotoIf("SIP/500-677f", "0?report") in new stack -- Executing Set("SIP/500-677f", "CALLERID(all)=Cordless - Home <500>") in new stack -- Executing NoOp("SIP/500-677f", "Using CallerID "Cordless - Home" <500>") in new stack -- Executing Macro("SIP/500-677f", "get-vmcontext|500") in new stack -- Executing Set("SIP/500-677f", "VMCONTEXT=default") in new stack -- Executing GotoIf("SIP/500-677f", "0?200:300") in new stack -- Goto (macro-get-vmcontext,s,300) -- Executing NoOp("SIP/500-677f", "") in new stack -- Executing VoiceMailMain("SIP/500-677f", "500@default") in new stack -- Playing 'vm-password' (language 'en') asterisk1*CLI> show channels Channel Location State Application(Data) SIP/500-677f *97@from-internal:5 Up VoiceMailMain(500@default) 1 active channel 1 active call -- Incorrect password '' for user '500' (context = default) -- Playing 'vm-incorrect' (language 'en') -- Playing 'vm-password' (language 'en') asterisk1*CLI> show g729 4/0 encoders/decoders of 4 licensed channels are currently in use -- Incorrect password '' for user '500' (context = default) -- Playing 'vm-incorrect' (language 'en') -- Playing 'vm-password' (language 'en') asterisk1*CLI> show channels Channel Location State Application(Data) SIP/500-677f *97@from-internal:5 Up VoiceMailMain(500@default) 1 active channel 1 active call -- Executing Macro("SIP/500-677f", "hangupcall") in new stack -- Executing ResetCDR("SIP/500-677f", "w") in new stack -- Executing NoCDR("SIP/500-677f", "") in new stack -- Executing Wait("SIP/500-677f", "5") in new stack

Another call that breaks it, this is calling another extension, and then being put on hold:

asterisk1*CLI> show g729 0/0 encoders/decoders of 4 licensed channels are currently in use asterisk1*CLI> show channels Channel Location State Application(Data) 0 active channels 0 active calls -- Executing Macro("SIP/500-5a00", "exten-vm|novm|200") in new stack -- Executing Macro("SIP/500-5a00", "user-callerid") in new stack -- Executing GotoIf("SIP/500-5a00", "0?report") in new stack -- Executing GotoIf("SIP/500-5a00", "0?start") in new stack -- Executing Set("SIP/500-5a00", "REALCALLERIDNUM=500") in new stack -- Executing NoOp("SIP/500-5a00", "REALCALLERIDNUM is 500") in new stack -- Executing Set("SIP/500-5a00", "AMPUSER=500") in new stack -- Executing Set("SIP/500-5a00", "AMPUSERCIDNAME=Cordless - Home") in new stack -- Executing GotoIf("SIP/500-5a00", "0?report") in new stack -- Executing Set("SIP/500-5a00", "CALLERID(all)=Cordless - Home <500>") in new stack -- Executing NoOp("SIP/500-5a00", "Using CallerID "Cordless - Home" <500>") in new stack -- Executing Set("SIP/500-5a00", "FROMCONTEXT=exten-vm") in new stack -- Executing Set("SIP/500-5a00", "VMBOX=novm") in new stack -- Executing Set("SIP/500-5a00", "EXTTOCALL=200") in new stack -- Executing Set("SIP/500-5a00", "CFUEXT=") in new stack -- Executing Set("SIP/500-5a00", "RT=") in new stack -- Executing Macro("SIP/500-5a00", "record-enable|200|IN") in new stack -- Executing GotoIf("SIP/500-5a00", "0 > 0?2:4") in new stack -- Goto (macro-record-enable,s,4) -- Executing AGI("SIP/500-5a00", "recordingcheck|20060830-050433|1156939473.0") in new stack -- Launched AGI Script /var/lib/asterisk/agi-bin/recordingcheck recordingcheck|20060830-050433|1156939473.0: Inbound recording not enabled -- AGI Script recordingcheck completed, returning 0 -- Executing NoOp("SIP/500-5a00", "No recording needed") in new stack -- Executing GotoIf("SIP/500-5a00", "0?dolocaldial|1") in new stack -- Executing Macro("SIP/500-5a00", "dial||tr|200") in new stack -- Executing AGI("SIP/500-5a00", "dialparties.agi") in new stack -- Launched AGI Script /var/lib/asterisk/agi-bin/dialparties.agi dialparties.agi: Starting New Dialparties.agi -- dialparties.agi: priority is 1 dialparties.agi: Caller ID name is 'Cordless - Home' number is '500' dialparties.agi: Methodology of ring is 'none' -- dialparties.agi: Added extension 200 to extension map -- dialparties.agi: Extension 200 cf is disabled -- dialparties.agi: Extension 200 do not disturb is disabled == Manager 'admin' logged on from 127.0.0.1 == Manager 'admin' logged off from 127.0.0.1 -- dialparties.agi: Checking CW and CFB status for extension 200 -- dialparties.agi: DbSet CALLTRACE/200 to 500 -- AGI Script dialparties.agi completed, returning 0 -- Executing Dial("SIP/500-5a00", "SIP/200||tr") in new stack -- Called 200 -- SIP/200-b6fe is ringing -- SIP/200-b6fe answered SIP/500-5a00 -- Attempting native bridge of SIP/500-5a00 and SIP/200-b6fe asterisk1*CLI> show g729 1/1 encoders/decoders of 4 licensed channels are currently in use asterisk1*CLI> show channels Channel Location State Application(Data) SIP/200-b6fe (None) Up Bridged Call(SIP/500-5a00) SIP/500-5a00 s@macro-dial:10 Up Dial(SIP/200||tr) 2 active channels 1 active call asterisk1*CLI> asterisk1*CLI> show g729 asterisk1*CLI> 0/0 encoders/decoders of 4 licensed channels are currently in use asterisk1*CLI> show channels 0/0 encoders/decoders of 4 licensed channels are currently in use asterisk1*CLI> asterisk1*CLI> show channels asterisk1*CLI> Channel Location State Application(Data) asterisk1*CLI> 0 active channels -- Executing Macro("SIP/500-5a00", "exten-vm|novm|200") in new stack asterisk1*CLI> 0 active calls asterisk1*CLI> -- Executing Macro("SIP/500-5a00", "exten-vm|novm|200") in new stack asterisk1*CLI> -- Executing Macro("SIP/500-5a00", "user-callerid") in new stack asterisk1*CLI> -- Executing Set("SIP/500-5a00", "REALCALLERIDNUM=500") in new stack -- Executing GotoIf("SIP/500-5a00", "0report") in new stack asterisk1*CLI> -- Executing Set("SIP/500-5a00", "AMPUSER=500") in new stack -- Executing GotoIf("SIP/500-5a00", "0start") in new stack asterisk1*CLI> -- Executing GotoIf("SIP/500-5a00", "0?report") in new stack -- Executing Set("SIP/500-5a00", "REALCALLERIDNUM=500") in new stack asterisk1*CLI> -- Executing NoOp("SIP/500-5a00", "REALCALLERIDNUM is 500") in new stack asterisk1*CLI> -- Executing Set("SIP/500-5a00", "AMPUSER=500") in new stack asterisk1*CLI> -- Executing Set("SIP/500-5a00", "VMBOX=novm") in new stack -- Executing Set("SIP/500-5a00", "AMPUSERCIDNAME=Cordless - Home") in new stack asterisk1*CLI> -- Executing GotoIf("SIP/500-5a00", "0report") in new stack asterisk1*CLI> -- Executing Set("SIP/500-5a00", "CALLERID(all)=Cordless - Home <500>") in new stack asterisk1*CLI> -- Executing GotoIf("SIP/500-5a00", "0 > 0?2:4") in new stack -- Executing NoOp("SIP/500-5a00", "Using CallerID "Cordless - Home" <500>") in new stack asterisk1*CLI> -- Executing Set("SIP/500-5a00", "FROMCONTEXT=exten-vm") in new stack asterisk1*CLI> recordingcheck|20060830-050433|1156939473.0: Inbound recording not enabled -- Executing Set("SIP/500-5a00", "VMBOX=novm") in new stack asterisk1*CLI> -- Executing Set("SIP/500-5a00", "EXTTOCALL=200") in new stack asterisk1*CLI> -- Executing GotoIf("SIP/500-5a00", "0?dolocaldial|1") in new stack -- Executing Set("SIP/500-5a00", "CFUEXT=") in new stack -- Executing Macro("SIP/500-5a00", "dial||tr|200") in new stack asterisk1*CLI> -- Executing Set("SIP/500-5a00", "RT=") in new stack asterisk1*CLI> -- Executing Macro("SIP/500-5a00", "record-enable|200|IN") in new stack asterisk1*CLI> -- Executing GotoIf("SIP/500-5a00", "0 > 02:4") in new stack asterisk1*CLI> -- Goto (macro-record-enable,s,4) asterisk1*CLI> -- Executing AGI("SIP/500-5a00", "recordingcheck|20060830-050433|1156939473.0") in new stack asterisk1*CLI> == Manager 'admin' logged on from 127.0.0.1 -- Launched AGI Script /var/lib/asterisk/agi-bin/recordingcheck asterisk1*CLI> recordingcheck|20060830-050433|1156939473.0: Inbound recording not enabled asterisk1*CLI> -- dialparties.agi: DbSet CALLTRACE/200 to 500 -- AGI Script dialparties.agi completed, returning 0 -- AGI Script recordingcheck completed, returning 0 asterisk1*CLI> -- Executing NoOp("SIP/500-5a00", "No recording needed") in new stack asterisk1*CLI> -- SIP/200-b6fe is ringing -- Executing GotoIf("SIP/500-5a00", "0dolocaldial|1") in new stack asterisk1*CLI> -- Executing Macro("SIP/500-5a00", "dial||tr|200") in new stack asterisk1*CLI> -- Executing AGI("SIP/500-5a00", "dialparties.agi") in new stack asterisk1*CLI> asterisk1*CLI> show channels -- Launched AGI Script /var/lib/asterisk/agi-bin/dialparties.agi asterisk1*CLI> dialparties.agi: Starting New Dialparties.agi asterisk1*CLI> -- dialparties.agi: priority is 1 asterisk1*CLI> dialparties.agi: Caller ID name is 'Cordless - Home' number is '500' asterisk1*CLI> dialparties.agi: Methodology of ring is 'none' asterisk1*CLI> -- dialparties.agi: Added extension 200 to extension map asterisk1*CLI> -- dialparties.agi: Extension 200 cf is disabled asterisk1*CLI> -- dialparties.agi: Extension 200 do not disturb is disabled asterisk1*CLI> == Manager 'admin' logged on from 127.0.0.1 asterisk1*CLI> == Manager 'admin' logged off from 127.0.0.1 asterisk1*CLI> -- dialparties.agi: Checking CW and CFB status for extension 200 asterisk1*CLI> -- dialparties.agi: DbSet CALLTRACE/200 to 500 asterisk1*CLI> -- AGI Script dialparties.agi completed, returning 0 asterisk1*CLI> -- Executing Dial("SIP/500-5a00", "SIP/200||tr") in new stack asterisk1*CLI> -- Called 200 asterisk1*CLI> -- SIP/200-b6fe is ringing asterisk1*CLI> -- SIP/200-b6fe answered SIP/500-5a00 asterisk1*CLI> -- Attempting native bridge of SIP/500-5a00 and SIP/200-b6fe asterisk1*CLI> asterisk1*CLI> show g729 asterisk1*CLI> 1/1 encoders/decoders of 4 licensed channels are currently in use asterisk1*CLI> asterisk1*CLI> show channels asterisk1*CLI> Channel Location State Application(Data) asterisk1*CLI> SIP/200-b6fe (None) Up Bridged Call(SIP/500-5a00) asterisk1*CLI> SIP/500-5a00 s@macro-dial:10 Up Dial(SIP/200||tr) asterisk1*CLI> 2 active channels asterisk1*CLI> 1 active call

After the call is placed on hold:

    -- Started music on hold, class 'default', on SIP/500-5a00
asterisk1*CLI> show g729
4/1 encoders/decoders of 4 licensed channels are currently in use
asterisk1*CLI> show channels
Channel              Location             State   Application(Data)
SIP/200-b6fe         (None)               Up      Bridged Call(SIP/500-5a00)
SIP/500-5a00         s@macro-dial:10      Up      Dial(SIP/200||tr)
2 active channels
1 active call
    -- Stopped music on hold on SIP/500-5a00

Hi all,

Just want to let you know that I start the whole thing from scratch. Using the single CD CentOS 4.3 , with Asterisk SVN-branch-1.2-r41423 , with FreePBX 2.1.1 and that same digium card. I’m please to let you know that everything is working well now. See, the log below.

-- AGI Script dialparties.agi completed, returning 0
-- Executing Dial("Zap/4-1", "SIP/63.80.XX.XX/522151079732XX||tr") in new stack
-- Called 63.80.96.131/522151079732XX
-- SIP/63.80.XXX.XX-08f25168 is making progress passing it to Zap/4-1

localhostCLI> show g729
0/0 encoders/decoders of 4 licensed channels are currently in use
localhost
CLI> show g729
0/0 encoders/decoders of 4 licensed channels are currently in use
localhostCLI> sip show channels
Peer User/ANR Call ID Seq (Tx/Rx) Form Hold Last Message
63.80.96.131 5221510797 094df6ad192 00102/00000 g729 No Init: INVITE
1 active SIP channel
– SIP/63.80.96.131-08f25168 answered Zap/4-1
localhost
CLI> show g729
1/1 encoders/decoders of 4 licensed channels are currently in use
localhostCLI> show g729
1/1 encoders/decoders of 4 licensed channels are currently in use
localhost
CLI> show g729
1/1 encoders/decoders of 4 licensed channels are currently in use
localhostCLI> show g729
1/1 encoders/decoders of 4 licensed channels are currently in use
== Spawn extension (macro-dial, s, 10) exited non-zero on ‘Zap/4-1’ in macro ‘dial’
== Spawn extension (macro-dial, s, 10) exited non-zero on ‘Zap/4-1’ in macro ‘exten-vm’
== Spawn extension (macro-dial, s, 10) exited non-zero on ‘Zap/4-1’
– Hungup 'Zap/4-1’
localhost
CLI> show g729
0/0 encoders/decoders of 4 licensed channels are currently in use

[quote=“mackiecfx16”]Hi all,

Just want to let you know that I start the whole thing from scratch. Using the single CD CentOS 4.3 , with Asterisk SVN-branch-1.2-r41423 , with FreePBX 2.1.1 and that same digium card. I’m please to let you know that everything is working well now. See, the log below.[/quote]

Not what I want to hear :wink:

I have finally got everything else working right, I would hate to have to start from scratch to resolve this issue.

Does anyone else have any other suggestions? Perhaps I am using the wrong codec. Which one should I be using for an Athlon Slot A 850MHZ?

Hi,

I hope you find some answer. But for me, It’s enough for me to know what causes this problem and confirm it is the Trixbox. kb.digium.com/entry/30/125/ , the URL acknowledges this problem and recognize it exist mostly on Trixbox. I think, we cannot find any answer from Digium or Asterisk dev team on this matter.

you do know that if you’re running trixbox, you don’t need to reinstall EVERYTHING to upgrade asterisk? if you’re using trixbox correctly, any customizations are in extensions_custom.conf and other _custom.conf files, so an asterisk upgrade should not affect those. just download the latest tarball from digium, do ‘make’ and ‘make install’ and restart…

Okay, I did this and getting asterisk to start again was a little tricky. When I did a make install I got the following warning:

WARNING WARNING WARNING

Your Asterisk modules directory, located at
/usr/lib/asterisk/modules
contains modules that were not installed by this
version of Asterisk. Please ensure that these
modules are compatible with this version before
attempting to run Asterisk.

app_addon_sql_mysql.so
app_flash.so
app_flite.so
app_managerredirect.so
app_meetme.so
app_mwanalyze.so
app_nv_backgrounddetect.so
app_nv_faxdetect.so
app_page.so
app_rxfax.so
app_saycountpl.so
app_trunkisavail.so
app_txfax.so
app_zapbarge.so
app_zapras.so
app_zapscan.so
cdr_addon_mysql.so
cdr_odbc.so
cdr_pgsql.so
chan_h323.so
chan_zap.so
codec_g729a.so
format_mp3.so
format_ogg_vorbis.so
res_config_mysql.so
res_config_odbc.so
res_odbc.so

WARNING WARNING WARNING

I moved all these modules to another directory so if I do a make install again I don’t get a warning, and asterisk still wouldn’t start. So, I checked the /var/log/asterisk/full log and there was a warning saying it couldn’t find format_mp3.so. So, I moved that back over and then asterisk could finally start. I then moved the coded_g729a.so back over as well and asterisk still started fine. So, I’m wondering, is there any easy way to know which of these modules was preventing asterisk from starting other then moving them over one at a time and then restarting asterisk?

On a positive note, doing this has resolved the codec issue.