DynExtensock- dynamically loaded extention backend socket interface

Hi All Asterisk Community,

I am looking for some help, Im new to asterisk, Like about 5 months into working and trying to figure out asterisk, we have an old asterisk 1.8.5 rc2 system which we cannot update cause it uses the above Asterisk App, I searched far and wide on google but it seems that does not exist anymore, I have the code for it but it does not run on any other asterisk server and i am not 100% sure why except to say that it would seem the way asterisk apps was made for 1.8.5 rc2 is alot different than how it is made now for asterisk 16 or 18 and up. I am not sure how to share that app files here but if someone is willing to help me figure it out what should be changed to make it work on newer asterisk i would highly appreciate it.

An rc2 version is what Microsoft would call a second public Beta. It should not have been used in production and should not have been used after 1.8.5.0 was released!

I can find no evidence that 1.8.5rc2 ever existed. There only seems to have been a release candidate. That is over ten years old!

2011-07-11  Leif Madsen <lmadsen@digium.com>

	* Asterisk 1.8.5.0 Released.

	* r326484 | dvossel | 2011-07-06 10:26:49 -0500 (Wed, 06 Jul 2011)

	  Reverts fix for timerfd locking issue.

	  jrose discovered a performance issue with this
	  fix that prevents his analog phones from working
	  when using timerfd as a timing source.  Until
	  it is understood what is causing this performance
	  problem, this patch is being reverted.

2011-06-29  Leif Madsen <lmadsen@digium.com>

	* Asterisk 1.8.5-rc1 Released.

Neither Google nor github return anything useful for dynextensock.

“dynamically loaded extension backend socket interface” returns nothing relevant except this thread. Nor does the OP’s mis-spelling.

It seems likely that this is a local modification, but even if not I doubt that the expertise to forward port it still exists. I think you will have to look at the high level requirement and re-engineer it.

HI, Thanks for the reply, Trust me that thing is quite bad, not sure why they went and used it in the first place, well either way, i am not sure how the things work and that is why i am asking for help. I have attached the file here so that if someone wants to have a look at it, they can download and check. “https://www.kdpwug.za.net/dbw/app_dynextensock.zip” I am sure it is possible to fix it to work on newer Asterisk systems, i just dont know what changed from the version that i cant even find anymore to even make a comparison to a newer asterisk.

I had a look at the code. There are 3 source files, but 2 of them just seem to be for testing. So the main important one is app_dynextensock.c, which is less than 350 lines.

So as I understand what is going on, when a call comes in for a particular extension, this code gets invoked. It then makes a TCP connection to another unspecified server, and (just guessing) obtains details about which applications to dynamically add to the dialplan to handle this extension. And then these additions are later removed when the channel hangs up.

Seems to me this can be done in simpler ways nowadays, without having to build custom addons against the Asterisk source. For example, a FastAGI listener process can be invoked at an appropriate point in the dialplan to feed commands to Asterisk. If AGI commands are not enough, you can enter “Async AGI” mode, where AMI commands can be used. Neither of these directly corresponds to feeding custom dialplan lines to a context on-the-fly, but I’d say it’s very likely you can achieve the end-effect you want this way.

Or maybe this is a job for ARI. Without further details, it’s hard to be sure what the best approach would be. Maybe the existing C code can be updated. But my feeling would be to leave that as a last resort.

The reason that my searches drew a blank is that this was never part of any official Asterisk. An official version would have included a valid copyright notice, as required by the licence, for a start.

I’m wondering if release candidate 2 was abandoned, and the release mainly based on release candidate 1, or maybe the archive doesn’t include release candidates that are exactly the same as the released version. In any case, it should not have been based on a release candidate.

Thank you so much for your reply. I would have to lie to say, that your guessing is exactly what i was guessing, and i am not sure how AGI works or if that would even be able to speak to the other software this thing speaks to. and to get these people to re-write stuff just so that we can test new stuff is like asking a 1cm bucket to collect rain in the desert. But thank you very much for having a look at this, at least i am 1 step closer in saying i saw the same that you saw and i just have to see what i should now change to make it load on a newer version af asterisk. cause when i try and make it, it complains about some commans, now my suspision is that from the 1.8 to 18 there were alot depricated and alot more changed.

I totally agree, you never use things that are not stable releases. i am not sure why the Derek person did it in the first place but yes like you said previously it is very unstable and they have stuck with that for the past 10+ years cause the person dissapeared from the face of the planet. and the main software that the dyn connects to was also made by him so no one even have source codes for it to see how it works. so im litterally stuck between a rock and a super aloy hard place.

We all know “if it ain’t broke, don’t fix it”. But you want to avoid “when it does break, we won’t have any idea how to fix it”.

someone sees my point of view, im always if it aint broke, dont fix it guy, but that is on a physical machine that is prob now 20 years old. physical systems and drives only have a certain lifespan, i did make a clone of the drive, but for some unknown reason when i start it in that system it works, but trying to start it in any other system it does not. so i am trying to avoid that last part you said, when it breaks, i cant fix it part. but it is rough. im checking other asterisk apps how their structure is and compairing it, but boy c++ or c# coding or what ever that code is, is making me feel dumb. This whole cenario makes me think of I have a car with a broken brake paddle but i cant fix it cause i dont know how to weld metal lol

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.