Ich nutze selbst auch primär Asterisk. Allerdings, man kann es nicht oft genug sagen, ist Asterisk keine Telefonanlage sondern ein Telefonie-Baukasten.
PJSIP schön und gut, aber die Komplexität mit der es konfiguriert wird und insbesondere, dass die Konfiguration über zig Dateien verteilt ist, finde ich ziemlich anstrengend.
pjsip_wizard.conf hilft, aber nicht überall, zudem sind die ganzen Abhängigkeiten und die Struktur schlecht dokumentiert.
Was mich stört, ist das "Nicht Fisch, nicht Fleisch" an einigen Stellen.
Es gibt drei Möglichkeiten, den Dialplan in einer Datei zu pflegen: extensions.conf, AEL und per Lua.
Aus Programmierersicht finde ich es immer nervig, wenn ein Produkt die Welt neu erfinden muss. Programmier- bzw. Skriptsprachen haben wir eigentlich schon genug, deswegen würde ich am ehesten Lua favorisieren. Alles was man im Netz findet ist aber zu 99,9% in der "Dialplan-Syntax" geschrieben, meiner Ansicht nach die schlechteste Alternative, da sehr ausdrucksschwach und quasi typfrei.
Und ein bisschen mehr Prüfung als eine einigermaßen oberflächliche statische Syntaxprüfung wäre auch mal etwas zeitgemäßes.
Auch die Beispiele in der Asterisk-Doku selbst sind alle immer in Dialplan-Syntax geschrieben.
Mir ist unklar, was denn jetzt die favorisierte Variante ist und ob nicht das eine oder andere doch mal deprecated wird, oder ob es irgendwie doch immer mitgeschleppt wird.
Da ist mir bspw. ein Yate angenehmer, die einfach konsequent auf Javascript als weit verbreitete Sprache setzen.
Heißt aber im Zweifel natürlich, dass der JS-Interpreter den sie verwenden, auch weit verbreitete Schwachstellen enthält...
Nerviger aber finde ich die APIs. Am schönsten zeigt es das Mengendiagramm auf dieser Seite:
wiki.asterisk.org
Es gibt AMI, ARI und AGI. Mit keiner dieser APIs kann man alles, und es ist hier ebenso unklar, wohin die Reise denn gehen soll. Jenachdem was meine Applikation können soll, muss ich heute mehrere APIs gleichzeitig ansprechen. Das ist die eine Sache, wenn es denn gescheite Implementierungen von API-Clients gäbe. Meist werden zig davon beworben, aber wenn man die dann einsetzen will, stellt man fest, dass eigentlich nur noch eine so halb gepflegt wird und die anderen quasi tot sind.
Man muss aber eben mit dem zurecht kommen was man (geschenkt) bekommt. Was mich eben nur ärgert ist, wenn ich sehe, dass die eh immer zu knappen Ressourcen verwendet werden, dieselbe Funktionalität in unterschiedlichen Ausprägungen zu pflegen.
Und da tut sich dann eben der Unterschied auf zwischen einem kostenlos verfügbaren Telefoniebaukasten und Produkten, die jemand daraus macht. Im Falle von Asterisk also bspw. UCware, iQall, Pascom, ASTIMAX, LocaPhone...
Dort werden diese ganzen Unsicherheiten und Unzlänglichkeiten durch hauseigene Lösungen weggepuffert und der Kunde bekommt ein fertiges Produkt, das bspw. eine REST-API für alles bietet.