1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094 |
- ==============================================================================
- ===
- === This file documents the new and/or enhanced functionality added in
- === the Asterisk versions listed below. This file does NOT include
- === changes in behavior that would not be backwards compatible with
- === previous versions; for that information see the UPGRADE.txt file
- === and the other UPGRADE files for older releases.
- ===
- ==============================================================================
- ------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 13.24.0 to Asterisk 13.25.0 ----------
- ------------------------------------------------------------------------------
- ARI
- ------------------
- * Whenever an ARI application is started, a context will be created for it
- automatically as long as one does not already exist, following the format
- 'stasis-<app_name>'. Two extensions are also added to this context: a match-all
- extension, and the 'h' extension. Any phone that registers under this context
- will place all calls to the corresponding Stasis application.
- res_pjsip
- ------------------
- * Added "send_contact_status_on_update_registration" global configuration option
- to enable sending AMI ContactStatus event when a device refreshes its registration.
- Core
- ------------------
- * Reworked the media indexer so it doesn't cache the index. Testing revealed
- that the cache added no benefit but that it could consume excessive memory.
- Two new index related functions were created: ast_sounds_get_index_for_file()
- and ast_media_index_update_for_file() which restrict index updating to
- specific sound files. The original ast_sounds_get_index() and
- ast_media_index_update() calls are still available but since they no longer
- cache the results internally, developers should re-use an index they may
- already have instead of calling ast_sounds_get_index() repeatedly. If
- information for only a single file is needed, ast_sounds_get_index_for_file()
- should be called instead of ast_sounds_get_index().
- Features
- ------------------
- * Before Asterisk 12, when using the automon or automixmon features defined
- in features.conf, a channel variable (TOUCH_MIXMONITOR_OUTPUT) was set on
- both channels, indicating the filename of the recording.
- When bridging was overhauled in Asterisk 12, the behavior was changed such
- that the variable was only set on the peer channel and not on the channel
- that initiated the automon or automixmon.
- The previous behavior has been restored so both channels receive the
- channel variable when one of these features is invoked.
- app_voicemail
- ------------------
- * You can now specify a special context with the "aliasescontext" parameter
- in voicemail.conf which will allow you to create aliases for physical
- mailboxes.
- ------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 13.23.0 to Asterisk 13.24.0 ----------
- ------------------------------------------------------------------------------
- pbx_config
- ------------------
- * pbx_config will now find and process multiple 'globals' sections from
- extensions.conf. Variables are processed in the order they are found
- and duplicate variables overwrite the previous value.
- chan_pjsip
- ------------------
- * New dialplan function PJSIP_PARSE_URI added to parse an URI and return
- a specified part of the URI.
- Core
- ------------------
- * ast_bt_get_symbols() now returns a vector of strings instead of an
- array of strings. This must be freed with ast_bt_free_symbols.
- res_pjsip
- ------------------
- * New options 'trust_connected_line' and 'send_connected_line' have been
- added to the endpoint. The option 'trust_connected_line' is to control
- if connected line updates are accepted from this endpoint.
- The option 'send_connected_line' is to control if connected line updates
- can be sent to this endpoint.
- The default value is 'yes' for both options.
- res_rtp_asterisk
- ------------------
- * The existing strictrtp option in rtp.conf has a new choice availabe, called
- 'seqno', which behaves the same way as setting strictrtp to 'yes', but will
- ignore the time interval during learning so that bursts of packets can still
- trigger learning our source.
- ------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 13.22.0 to Asterisk 13.23.0 ----------
- ------------------------------------------------------------------------------
- res_pjsip
- ------------------
- * A new option 'suppress_q850_reason_headers' has been added to the endpoint
- object. Some devices can't accept multiple Reason headers and get confused
- when both 'SIP' and 'Q.850' Reason headers are received. This option allows
- the 'Q.850' Reason header to be suppressed. The default value is 'no'.
- res_pjsip_endpoint_identifier_ip
- ------------------
- * Added regex support to the identify section match_header option. You
- specify a regex instead of an explicit string by surrounding the header
- value with slashes:
- match_header = SIPHeader: /regex/
- ------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 13.21.0 to Asterisk 13.22.0 ----------
- ------------------------------------------------------------------------------
- Core
- ------------------
- * Core bridging and, more specifically, bridge_softmix have been enhanced to
- relay received frames of type TEXT or TEXT_DATA to all participants in a
- softmix bridge. res_pjsip_messaging and chan_pjsip have been enhanced to
- take advantage of this so when res_pjsip_messaging receives an in-dialog
- MESSAGE message from a user in a conference call, it's relayed to all
- other participants in the call.
- app_sendtext
- ------------------
- Support Enhanced Messaging. SendText now accepts new channel variables
- that can be used to override the To and From display names and set the
- Content-Type of a message. Since you can now set Content-Type, other
- text/* content types are now valid.
- app_confbridge
- ------------------
- * ConfbridgeList now shows talking status. This utilizes the same voice
- detection as the ConfbridgeTalking event, so bridges must be configured
- with "talk_detection_events=yes" for this flag to have meaning.
- res_pjsip
- ------------------
- * Two new options have been added to the system and endpoint objects to
- control whether, on outbound calls, Asterisk will accept updated SDP answers
- during the initial INVITE transaction when 100rel is not in effect.
- This usually happens when the INVITE is forked to multiple UASs and more
- than one sends an SDP answer or when a single UAS needs to change a media
- port to switch from custom ringback to the actual media destination.
- The 'follow_early_media_forked' option sets whether Asterisk will accept
- the updated SDP when the To tag on the subsequent response is different than
- that on the the previous response. This usually occurs in the forked INVITE
- scenario. The default value is "yes" which is the current behavior.
- The 'accept_multiple_sdp_answers' flag sets whether Asterisk will accept the
- updated SDP when the To tag on the subsequent response is the same as that
- on the previous response. This can occur when a UAS needs to switch media
- ports from custom ringback to the final media path. The default value is
- "no" which is the current behavior.
- These options have to be enabled system-wide in the system config section
- of pjsip.conf as well as on individual endpoints that require the
- functionality.
- ------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 13.20.0 to Asterisk 13.21.0 ----------
- ------------------------------------------------------------------------------
- Build System
- ------------------
- * RADIUS backends for CEL and CDR can now also be built using the radcli
- client library, in addition to the existing support for building them
- using either freeradius or radiusclient-ng.
- Core
- ------------------
- * A new configuration option "genericplc_on_equal_codecs" was added to the
- "plc" section of codecs.conf to allow generic packet loss concealment even
- if no transcoding was originally needed. Transcoding via SLIN is forced
- in this case.
- res_pjproject
- ------------------
- * Added the "cache_pools" option to pjproject.conf. Disabling the option
- helps track down pool content mismanagement when using valgrind or
- MALLOC_DEBUG. The cache gets in the way of determining if the pool contents
- are used after free and who freed it.
- res_pjsip_notify
- ------------------
- * Extend the PJSIPNotify AMI command to send an in-dialog notify on a
- channel.
- ------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 13.19.0 to Asterisk 13.20.0 ----------
- ------------------------------------------------------------------------------
- Core
- ------------------
- * During dialplan reload log messages are produced for each context,
- extension and include. These messages are no longer printed by the
- verbose loggers, they are now only logged as debug messages.
- app_confbridge
- ------------------
- * Added the Muted header to the ConfbridgeJoin AMI event to indicate the
- participant's starting mute status.
- * Made the AMI ConfbridgeList action's ConfbridgeList events output all
- the standard channel snapshot headers instead of a few hand-coded channel
- snapshot headers. The benefit is that the CallerIDName gets disruptive
- characters like CR, LF, Tab, and a few others escaped. However, an empty
- CallerIDName is now output as "<unknown>" instead of "<no name>".
- app_followme
- ------------------
- * Added a new prompt, connecting-prompt, which will be played
- (if configured) to the "winner" callee before connecting the call.
- res_pjsip
- ------------------
- * Users who are matching endpoints by SIP header need to reevaluate their
- global "endpoint_identifier_order" option in light of the "ip" endpoint
- identifier method split into the "ip" and "header" endpoint identifier
- methods.
- * The pjsip_transport_event feature introduced in 13.18.0 has been refactored.
- Any external modules that may have used that feature (highly unlikey) will
- need to be changed as the API has been altered slightly.
- res_pjsip_endpoint_identifier_ip
- ------------------
- * The endpoint identifier "ip" method previously recognized endpoints either
- by IP address or a matching SIP header. The "ip" endpoint identifier method
- is now split into the "ip" and "header" endpoint identifier methods. The
- "ip" endpoint identifier method only matches by IP address and the "header"
- endpoint identifier method only matches by SIP header. The split allows the
- user to control the relative priority of the IP address and the SIP header
- identification methods in the global "endpoint_identifier_order" option.
- e.g., If you have two type=identify sections where one matches by IP address
- for endpoint alice and the other matches by SIP header for endpoint bob then
- you can now predict which endpoint is matched when a request comes in that
- matches both.
- res_pjsip_registrar_expire
- ------------------
- * The res_pjsip_registrar_expire module is now deprecated and will be removed
- from Asterisk 16. The existing functionality was moved into
- res_pjsip_registrar.
- res_pjsip_pubsub
- ------------------
- * In an earlier release, inbound registrations on a reliable transport
- were pruned on Asterisk restart since the TCP connection would have
- been torn down and become unusable when Asterisk stopped. This same
- process is now also applied to inbound subscriptions. Since this
- required the addition of a new column to the ps_subscription_persistence
- realtime table, users who store their subscriptions in a database will
- need to run the "alembic upgrade head" process to add the column to
- the schema.
- res_pjsip_transport_management
- ------------------
- * Since res_pjsip_transport_management provides several attack
- mitigation features, its functionality moved to res_pjsip and
- this module has been removed. This way the features will always
- be available if res_pjsip is loaded.
- ------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 13.18.0 to Asterisk 13.19.0 ----------
- ------------------------------------------------------------------------------
- Core
- ------------------
- * Added the "cache_media_frames" option to asterisk.conf. Disabling the option
- helps track down media frame mismanagement when using valgrind or
- MALLOC_DEBUG. The cache gets in the way of determining if the frame is
- used after free and who freed it. NOTE: This option has no effect when
- Asterisk is compiled with the LOW_MEMORY compile time option enabled because
- the cache code does not exist.
- chan_sip
- ------------------
- * Calls to invalid extensions are now reported as an ACL failure security event
- "no_extension_match".
- res_pjsip
- ------------------
- * The "identify_by" on endpoints can now be set to "ip" to restrict an endpoint
- being matched based only on IP address. To ensure no behavior change the
- default has been changed to "username,ip".
- ------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 13.17.0 to Asterisk 13.18.0 ----------
- ------------------------------------------------------------------------------
- Core
- ------------------
- * VP9 is now a supported passthrough video codec and it can be used by
- specifying "vp9" in the allow line.
- Build System
- ------------------
- * A '--with-download-cache' option is now available which is equivalent to
- setting '--with-sounds-cache' and '--with-externals-cache' to the same
- value. The download cache can also be set via the AST_DOWNLOAD_CACHE
- environment variable.
- res_pjsip
- ------------------
- * The "external_media_address" on transports is now resolved using dnsmgr and
- when dnsmgr refreshes are enabled will be automatically updated with the new
- IP address of a given hostname.
- * A new endpoint parameter "incoming_mwi_mailbox" allows Asterisk to receive
- unsolicited MWI NOTIFY requests and make them available to other modules via
- the stasis message bus.
- * The "remove_existing" option now allows a registration to succeed by
- displacing any existing contacts that now exceed the "max_contacts" count.
- Any removed contacts are the next to expire. The behaviour change is
- beneficial when "rewrite_contact" is enabled and "max_contacts" is greater
- than one. The removed contact is likely the old contact created by
- "rewrite_contact" that the device is refreshing.
- res_musiconhold
- ------------------
- * By default, when res_musiconhold reloads or unloads, it sends a HUP signal
- to custom applications (and all descendants), waits 100ms, then sends a
- TERM signal, waits 100ms, then finally sends a KILL signal. An application
- which is interacting with an external device and/or spawns children of its
- own may not be able to exit cleanly in the default times, expecially if sent
- a KILL signal, or if it's children are getting signals directly from
- res_musiconhoild. To allow extra time, the 'kill_escalation_delay'
- class option can be used to set the number of milliseconds res_musiconhold
- waits before escalating kill signals, with the default being the current
- 100ms. To control to whom the signals are sent, the "kill_method"
- class option can be set to "process_group" (the default, existing behavior),
- which sends signals to the application and its descendants directly, or
- "process" which sends signals only to the application itself.
- res_pjsip
- ------------------
- * New dialplan function PJSIP_DTMF_MODE added to get or change the DTMF mode
- of a channel on a per-call basis.
- res_xmpp
- -----------------
- * OAuth 2.0 authentication is now supported when contacting Google. Follow the
- instructions in xmpp.conf.sample to retrieve and configure the necessary
- tokens.
- app_queue
- ------------------
- * Add priority to callers in AMI QueueStatus response.
- AMI
- ------------------
- * Added a new CancelAtxfer action that cancels an attended transfer.
- ------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 13.16.0 to Asterisk 13.17.0 ----------
- ------------------------------------------------------------------------------
- app_voicemail
- ------------------
- * A new global option "imap_poll_logout" was added to specify whether need to
- disconnect from the IMAP server after polling of mailboxes.
- Default: no
- res_pjsip
- ------------------
- * A new endpoint option "refer_blind_progress" was added to turn off notifying
- the progress details on Blind Transfer. If this option is not set then
- the chan_pjsip will send NOTIFY "200 OK" immediately after "202 Accepted".
- On default is enabled.
- Some SIP phones like Mitel/Aastra or Snom keep the line busy until
- receive "200 OK".
- * A new endpoint option "notify_early_inuse_ringing" was added to control
- whether to notify dialog-info state 'early' or 'confirmed' on Ringing
- when already INUSE.
- * The endpoint option 'dtmf_mode' has a new option 'auto_dtmf' added. This
- mode works similar to 'auto' except uses DTMF INFO as fallback instead of
- INBAND.
- res_agi
- ------------------
- * The EAGI() application will now look for a dialplan variable named
- EAGI_AUDIO_FORMAT and use that format with the 'enhanced' audio pipe that
- EAGI provides. If not specified, it will continue to use the default signed
- linear (slin).
- chan_pjsip
- ------------------
- * When dialing an endpoint directly or using the PJSIP_DIAL_CONTACTS dialplan
- function any contact which is considered unreachable due to qualify being
- enabled will no longer be called.
- * The asymmetric_rtp_codec option now also controls whether chan_pjsip will
- send media as-is without transcoding if the codec has been negotiated in the
- SDP. If set to "no" then Asterisk will only ever send the preferred codec
- from the SDP, unless the remote side sends a different codec and we will
- switch to match.
- Build System
- ------------------
- * Added a new PJPROJECT_CONFIGURE_OPTS environment variable which can be used
- to pass arbitrary options to the bundled pjproject configure.
- * Automatically set the bundled pjproject configure --host and --build
- options to match those supplied for the asterisk configure.
- ------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 13.15.0 to Asterisk 13.16.0 ----------
- ------------------------------------------------------------------------------
- res_rtp_asterisk
- ------------------
- * Added the stun_blacklist option to rtp.conf. Some multihomed servers have
- IP interfaces that cannot reach the STUN server specified by stunaddr.
- Blacklist those interface subnets from trying to send a STUN packet to find
- the external IP address. Attempting to send the STUN packet needlessly
- delays processing incoming and outgoing SIP INVITEs because we will wait
- for a response that can never come until we give up on the response.
- Multiple subnets may be listed.
- Logging
- -------------------
- * Added logger_queue_limit to the configuration options.
- All log messages go to a queue serviced by a single thread
- which does all the IO. This setting controls how big that
- queue can get (and therefore how much memory is allocated)
- before new messages are discarded.
- The default is 1000.
- res_pjsip_config_wizard
- ------------------
- * Two new parameters have been added to the pjsip config wizard.
- Setting 'sends_line_with_registrations' to true will cause the wizard
- to skip the creation of an identify object to match incoming requests
- to the endpoint and instead add the line and endpoint parameters to
- the outbound registration object.
- Setting 'outbound_proxy' is a shortcut for adding individual
- endpoint/outbound_proxy, aor/outbound_proxy and registration/outbound_proxy
- parameters.
- res_hep_rtcp
- ------------------
- * If the 'call-id' value is specified for the uuid_type option and a
- chan_sip channel is used the resulting HEP traffic will now contain the
- SIP Call-ID instead of the Asterisk channel name.
- ------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 13.14.0 to Asterisk 13.15.0 ----------
- ------------------------------------------------------------------------------
- AMI
- ------------------
- * The 'PJSIPShowEndpoint' command's respone event of 'IdentifyDetail' now
- contains a new optional parameter, 'MatchHeader', mapping to the new
- configuration option 'match_header' for the corresponding 'identify' object.
- It should be noted that since 'match_header' takes in a key: value pair, the
- event parameter will contain a ':' as well.
- app_record
- ------------------
- * Added new 'u' option to Record() application which prevents Asterisk from
- truncating silence from the end of recorded files.
- res_pjsip_outbound_registration
- ------------------
- * Outbound registrations are now refreshed when res_stun_monitor detects
- a network change event has happened.
- The 'pjsip send (un)register' CLI commands were updated to accept '*all'
- as an argument to operate on all registrations.
- The 'PJSIP(Un)Register' AMI commands were updated to also accept '*all'.
- app_voicemail
- ------------------
- * The 'Comedian Mail' prompts can now be overriden using the 'vm-login' and
- 'vm-newuser' configuration options in voicemail.conf.
- * Added 'fromstring' field to the voicemail boxes. If set, it will override
- the global 'fromstring' field on a per-mailbox basis.
- func_channel
- ------------------
- * Added CHANNEL(callid) to retrieve the call log tag associated with the
- channel. e.g., [C-00000000] Dialplan now has access to the call log
- search key associated with the channel so it can be saved in case there
- is a problem with the call.
- res_pjsip
- ------------------
- * A new transport parameter 'symmetric_transport' has been added.
- When a request from a dynamic contact comes in on a transport with this
- option set to 'yes', the transport name will be saved and used for
- subsequent outgoing requests like OPTIONS, NOTIFY and INVITE. It's
- saved as a contact uri parameter named 'x-ast-txp' and will display with
- the contact uri in CLI, AMI, and ARI output. On the outgoing request,
- if a transport wasn't explicitly set on the endpoint AND the request URI
- is not a hostname, the saved transport will be used and the 'x-ast-txp'
- parameter stripped from the outgoing packet. To facilitate recreation of
- subscriptions on asterisk restart, a new column 'contact_uri' needed to be
- added to the ps_subcsription_persistence table. Since new columns were
- added to both transport and subscription_persistence, an alembic upgrade
- should be run to bring the database tables up to date.
- * A new option, allow_overlap, has been added to endpoints which allows
- overlap dialing functionality to be enabled or disabled. The option defaults
- to enabled.
- res_pjsip_transport_websocket
- ------------------
- * Removed non-secure websocket support. Firefox and Chrome have not allowed
- non-secure websockets for quite some time so this shouldn't be an issue
- for people. Attempting to use a non-secure websocket may or may not work
- when Asterisk attempts to send SIP requests to do something like initiate
- call hangup.
- res_pjsip_endpoint_identifier_ip
- ------------------
- * A new option has been added to the 'identify' configuration object,
- 'match_header'. The 'match_header' attribute should contain a SIP
- header: value pair that, When set, will cause inbound requests that contain
- the matching SIP header/value pair to be associated with the corresponding
- endpoint. This option is cumulative with the 'match' option, so that if
- either option matches the request, the request is associated with the
- endpoint.
- In a future release, this module will be renamed to something more
- appropriate, as it now matches inbound requests on more than just IP
- address.
- res_rtp_asterisk
- -----------------
- * The RTP layer of Asterisk now has support for RFC 5761: "Multiplexing RTP
- Data and Control Packets on a Single Port." So far, the only channel driver
- that supports this feature is chan_pjsip. You can set "rtcp_mux = yes" on
- a PJSIP endpoint in pjsip.conf to enable the feature.
- ------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 13.13.0 to Asterisk 13.14.0 ----------
- ------------------------------------------------------------------------------
- res_pjproject
- ------------------
- * Added new CLI command "pjproject set log level". The new command allows
- the maximum PJPROJECT log levels to be adjusted dynamically and
- independently from the set debug logging level like many other similar
- module debug logging commands.
- * Added new companion CLI command "pjproject show log level" to allow the
- user to see the current maximum pjproject logging level.
- * Added new pjproject.conf startup section "log_level' option to set the
- initial maximum PJPROJECT logging level.
- res_pjsip_outbound_registration
- ------------------
- * Statsd no longer logs redundant status PJSIP.registrations.state changes
- for internal state transitions that don't change the reported public status
- state.
- res_pjsip_registrar
- ------------------
- * The PJSIPShowRegistrationInboundContactStatuses AMI command has been added
- to return ContactStatusDetail events as opposed to
- PJSIPShowRegistrationsInbound which just a dumps every defined AOR.
- res_pjsip
- ------------------
- * Six existing contact fields have been added to the end of the
- ContactStatusDetail AMI event:
- ID, AuthenticateQualify, OutboundProxy, Path, QualifyFrequency and
- QualifyTimeout. Existing fields have not been disturbed.
- res_pjsip_endpoint_identifier_ip
- ------------------
- * SRV lookups can now be done on provided hostnames to determine additional
- source IP addresses for requests. This is configurable using the
- "srv_lookups" option on the identify and defaults to "yes".
- ARI
- ------------------
- * The 'ari set debug' command has been enhanced to accept 'all' as an
- application name. This allows dumping of all apps even if an app
- hasn't registered yet.
- * 'ari set debug' now displays requests and responses as well as events.
- ------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 13.12.0 to Asterisk 13.13.0 ----------
- ------------------------------------------------------------------------------
- AMI
- ------------------
- * Events that reference a bridge may now contain two new optional fields:
- - 'BridgeVideoSourceMode': the video source mode for the bridge.
- Can be one of 'none', 'talker', or 'single'.
- - 'BridgeVideoSource': the unique ID of the channel that is the video
- source in this bridge, if one exists.
- * A new event, BridgeVideoSourceUpdate, has been added with a class
- authorization of CALL. The event is raised when the video source changes
- in a multi-party mixing bridge.
- ARI
- ------------------
- * The bridges resource now exposes two new operations:
- - POST /bridges/{bridgeId}/videoSource/{channelId}: Set a video source in a
- multi-party mixing bridge
- - DELETE /bridges/{bridgeId}/videoSource: Remove the set video source,
- reverting to talk detection for the video source
- * The bridge model in any returned response or event now contains the following
- optional fields:
- - video_mode: the video source mode for the bridge. Can be one of 'none',
- 'talker', or 'single'.
- - video_source_id: the unique ID of the channel that is the video source
- in this bridge, if one exists.
- * A new event, BridgeVideoSourceChanged, has been added for bridges.
- Applications subscribed to a bridge will receive this event when the source
- of video changes in a mixing bridge.
- res_pjsip
- ------------------
- * Automatic dual stack support is now implemented. Depending on DNS resolution
- and the transport used for sending a message the SIP signaling and SDP will
- be updated with the correct IP address and protocol version. This means that
- the rtp_ipv6 and t38_udptl_ipv6 options no longer have any effect. The
- res_pjsip_multihomed module has also been moved into core res_pjsip to ensure
- that messages are updated with the correct address information in all cases.
- chan_pjsip
- ------------------
- * The default behavior for RTP codecs has been changed. The sending codec will
- now match the receiving codec. This can be turned off and behavior reverted
- to asymmetric using the "asymmetric_rtp_codec" endpoint option. If this
- option is set then the sending and received codec are allowed to differ.
- CLI Commands
- ------------------
- * Three new CLI commands have been added for ARI:
- - ari show apps:
- Displays a listing of all registered ARI applications.
- - ari show app <name>:
- Display detailed information about a registered ARI application.
- - ari set debug <name> <on|off>:
- Enable/disable debugging of an ARI application. When debugged, verbose
- information will be sent to the Asterisk CLI.
- RTP
- ------------------
- * New setting "rtp_pt_dynamic = 96" in asterisk.conf:
- Normally the Dynamic RTP Payload Type numbers are 96-127, which allow 32
- formats. When you use more and receive the message "No Dynamic RTP mapping
- available", extend the dynamic range by going for rtp_pt_dynamic = 35 (or 0)
- instead of 96. This allows 29 (or 64) additional formats. On default this is
- disabled and the range is 96-127 because any number below might be rejected
- by a remote implementation; although no such broken implementation is known.
- Queue
- ------------------
- * A new dialplan variable, ABANDONED, is set when the call is not answered
- by an agent.
- Core
- ------------------
- * The TLS core in Asterisk now supports X.509 certificate subject alternative
- names. This way one X.509 certificate can be used for hosts that can be
- reached under multiple DNS names or for multiple hosts.
- ------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 13.11.0 to Asterisk 13.12.0 ----------
- ------------------------------------------------------------------------------
- Build System
- ------------------
- * The res_digium_phone, codec_g729a, codec_silk, codec_siren7 and
- codec_siren14 binary modules hosted at downloads.digium.com can now be
- automatically downloaded and installed during the Asterisk install
- process. If selected in menuselect, when 'make install' is run, the
- script will check the downloads site for a new version and download
- and install it if needed. The '--with-externals-cache' option to
- ./configure can be used to specify a location to cache the latest
- tarballs so they don't have to be re-downloaded for every install.
- app_voicemail
- ------------------
- * Added "tps_queue_high" and "tps_queue_low" options.
- The options can modify the taskprocessor alert levels for this module.
- Additional information can be found in the sample configuration file at
- config/samples/voicemail.conf.sample.
- res_pjsip_mwi
- ------------------
- * Added "mwi_tps_queue_high" and "mwi_tps_queue_low" global configuration
- options to tune taskprocessor alert levels.
- * Added "mwi_disable_initial_unsolicited" global configuration option
- to disable sending unsolicited MWI to all endpoints on startup.
- Additional information can be found in the sample configuration file at
- config/samples/pjsip.conf.sample.
- chan_pjsip
- ------------------
- * A new dialplan function, PJSIP_SEND_SESSION_REFRESH, has been added. When
- invoked, a re-INVITE or UPDATE request will be sent immediately to the
- endpoint underlying the channel. When used in combination with the existing
- dialplan function PJSIP_MEDIA_OFFER, this allows the formats on a PJSIP
- channel to be re-negotiated and updated after session set up.
- res_pjsip
- ------------------
- * A new endpoint configuration parameter 'contact_user' has been added which
- when set will override the default user set on Contact headers in outgoing
- requests.
- * If you are using a sorcery realtime backend to store global res_pjsip
- options (ps_globals table) then you now have to do a res_pjsip reload for
- changes to these options to take effect. If you are using pjsip.conf to
- configure these options then you already had to do a reload after making
- changes.
- * Added "ignore_uri_user_options" global configuration option for
- compatibility with an ITSP that sends URI user field options. When enabled
- the user field is truncated at the first semicolon.
- Example:
- URI: "sip:1235557890;phone-context=national@x.x.x.x;user=phone"
- The user field is "1235557890;phone-context=national"
- Which is truncated to this: "1235557890"
- Note: The caller-id and redirecting number strings obtained from incoming
- SIP URI user fields are now always truncated at the first semicolon.
- res_rtp_asterisk
- ------------------
- * An option, ice_blacklist, has been added which allows certain subnets to be
- excluded from local ICE candidates.
- app_confbridge
- ------------------
- * Some sounds played into the bridge are played asynchronously. This, for
- instance, allows a channel to immediately exit the ConfBridge without having
- to wait for a leave announcement to play.
- Core
- ------------------
- * If Asterisk is built with systemd support, and run under systemd, it will
- notify systemd of its state using sd_notify. Use 'Type=notify' in
- asterisk.service.
- app_dial
- ------------------
- * Added the "Q" option which sets the Q.850/Q.931 cause on unanswered channels
- when another channel answers the call. The default of ANSWERED_ELSEWHERE
- is unchanged.
- res_ari
- ------------------
- * ARI events will all now include a new field in the root of the JSON message,
- 'asterisk_id'. This will be the unique ID for the Asterisk system
- transmitting the event. The value can be overridden using the 'entityid'
- setting in asterisk.conf.
- ------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 13.10.0 to Asterisk 13.11.0 ----------
- ------------------------------------------------------------------------------
- chan_dahdi
- ------------------
- * Added "faxdetect_timeout" option.
- The option determines how many seconds into a call before faxdetect
- is disabled for the call. Setting the value to zero disables the timeout.
- chan_sip
- ------------------
- * Session-Timers (RFC 4028) work for TCP (and TLS) transports as well now.
- Previously Asterisk dropped calls only with UDP transports. However with
- longer international calls via TCP, the SIP channel might break, because
- all hops on the Internet route must stay online (have not a single power
- outage, for example). Therefore with Session-Timers enabled (which are
- enabled at default), you might see additional dropped calls. Consequently
- please, consider to go for session-timers=refuse in your sip.conf.
- res_pjsip
- ------------------
- * Added "fax_detect_timeout" to endpoint.
- The option determines how many seconds into a call before fax_detect
- is disabled for the call. Setting the value to zero disables the timeout.
- * Added "subscribe_context" to endpoint.
- If specified, incoming SUBSCRIBE requests will be searched for the matching
- extension in the indicated context. If no "subscribe_context" is specified,
- then the "context" setting is used.
- res_rtp_asterisk
- ------------------
- * The DTLS part in Asterisk now supports Perfect Forward Secrecy (PFS).
- Enabling PFS is attempted by default, and is dependent on the configuration
- of the module using TLS.
- - Ephemeral ECDH (ECDHE) is enabled by default. To disable it, do not
- specify a ECDHE cipher suite in sip.conf, for example:
- dtlscipher=AES128-SHA
- - Ephemeral DH (DHE) is disabled by default. To enable it, add DH parameters
- into the private key file, e.g., sip.conf dtlsprivatekey. For example:
- openssl dhparam -out ./dh.pem 2048
- - Because clients expect the server to prefer PFS, and because OpenSSL sorts
- its cipher suites by bit strength, see "openssl ciphers -v DEFAULT".
- Consider re-ordering your cipher suites in the respective configuration
- file. For example:
- dtlscipher=ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256
- which forces PFS and requires at least DTLS 1.2.
- ------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 13.9.0 to Asterisk 13.10.0 -----------
- ------------------------------------------------------------------------------
- Core
- ------------------
- * A channel variable FORWARDERNAME is now set which indicates which channel
- was responsible for a forwarding requests received on dial attempt.
- chan_multicast_rtp
- ------------------
- * Deprecated in favor of chan_rtp which is basically chan_multicast_rtp
- renamed to chan_rtp with UnicastRTP channels added and some internal code
- improvements.
- chan_rtp
- ------------------
- * The format for dialing a unicast RTP channel is:
- UnicastRTP/<destination-addr>[/[<options>]]
- Where <destination-addr> is something like '127.0.0.1:5060'.
- Where <options> are in standard Asterisk flag options format:
- c(<codec>) - Specify which codec/format to use such as 'ulaw'.
- e(<engine>) - Specify which RTP engine to use such as 'asterisk'.
- * More options are available over what chan_multicast_rtp supports.
- The format for dialing a multicast RTP channel is:
- MulticastRTP/<type>/<destination-addr>[/[<control-addr>][/[<options>]]]
- Where <type> can be either 'basic' or 'linksys'.
- Where <destination-addr> is something like '224.0.0.3:5060'.
- Where <control-addr> is something like '127.0.0.1:5060'.
- Where <options> are in standard Asterisk flag options format:
- c(<codec>) - Specify which codec/format to use such as 'ulaw'.
- i(<address>) - Specify the interface address from which multicast RTP
- is sent.
- l(<enable>) - Set whether packets are looped back to the sender. The
- enable value can be 0 to set looping to off and non-zero to set
- looping on.
- t(<ttl>) - Set the time-to-live (TTL) value for multicast packets.
- func_odbc
- ------------------
- * Added new global option "single_db_connection".
- Enabling this option func_odbc will use a single database connection per DSN.
- This option is enabled by default.
- res_fax
- ------------------
- * Added FAXMODE variable to let dialplan know what fax transport was used.
- FAXMODE variable is set to either "audio" or "T38".
- res_pjsip
- ------------------
- * Added "via_addr", "via_port", "call_id" to contacts.
- As res_pjsip_nat rewrites contact's address, only the last Via header
- can contain the source address of registered endpoint.
- Also Call-Id header may contain the source address of registered endpoint.
- Added new fields ViaAddress,CallID to AMI event ContactStatus
- * Endpoint IP Access Controls
- Added new configuration Endpoint options:
- "acl" - list of IP ACL section names in acl.conf
- "deny" - List of IP addresses to deny access from
- "permit" - List of IP addresses to permit access from
- "contact_acl" - List of Contact ACL section names in acl.conf
- "contact_deny" - List of Contact header addresses to deny
- "contact_permit" - List of Contact header addresses to permit
- * Added "reg_server" to contacts.
- If the Asterisk system name is set in asterisk.conf, it will be stored
- into the "reg_server" field in the ps_contacts table to facilitate
- multi-server setups.
- * When starting Asterisk, received traffic will now be ignored until Asterisk
- has loaded all modules and is fully booted.
- res_hep
- ------------------
- * Added a new option, 'uuid_type', that sets the preferred source of the Homer
- correlation UUID. The valid options are:
- - call-id: Use the PJSIP SIP Call-ID header value
- - channel: Use the Asterisk channel name
- The default value is 'call-id'. In the event that a HEP module cannot find a
- valid value using the specified 'uuid_type', the module may fallback to a
- more readily available source for the correlation UUID.
- res_pjsip_info_empty
- --------------------
- * A new module that can respond to empty Content-Type INFO packets during call.
- Some SBCs will terminate a call if their empty INFO packets are not responded
- to within a predefined time.
- res_odbc
- ------------------
- * A new option has been added, 'max_connections', which sets the maximum number
- of concurrent connections to the database. This option defaults to 1 which
- returns the behavior to that of Asterisk 13.7 and prior.
- app_confbridge
- ------------------
- * Added a bridge profile option called regcontext that allows you to
- dynamically register the conference bridge name as an extension into
- the specified context. This allows tracking down conferences on multi-
- server installations via alternate means (DUNDI for example). By default
- this feature is not used.
- Codecs
- ------------------
- * Added the associated format name to 'core show codecs'.
- res_ari_channels
- ------------------
- * Added 'formats' to channel create/originate to allow setting the allowed
- formats for a channel when no originator channel is available. Especially
- useful for Local channel creation where no other format information is
- available. 'core show codecs' can now be used to look up suitable format
- names.
- ------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 13.8.0 to Asterisk 13.9.0 ------------
- ------------------------------------------------------------------------------
- res_pjsip
- ------------------
- * Added new global option (disable_multi_domain) to pjsip.
- Disabling Multi Domain can improve realtime performace by reducing
- number of database requsts.
- chan_pjsip
- ------------------
- * Added 'pjsip show channelstats' CLI command.
- res_pjsip_outbound_publish
- ------------------
- * Added support for setting the transport used on outbound publish
- using the transport configuration option.
- ------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 13.7.0 to Asterisk 13.8.0 ------------
- ------------------------------------------------------------------------------
- res_pjsip_caller_id
- ------------------
- * Per RFC3325, the 'From' header is now anonymized on outgoing calls when
- caller id presentation is prohibited.
- res_pjsip_config_wizard
- ------------------
- * A new command (pjsip export config_wizard primitives) has been added that
- will export all the pjsip objects it created to the console or a file
- suitable for reuse in a pjsip.conf file.
- Build System
- ------------------
- * To help insure that Asterisk is compiled and run with the same known
- version of pjproject, a new option (--with-pjproject-bundled) has been
- added to ./configure. When specified, the version of pjproject specified
- in third-party/versions.mak will be downloaded and configured. When you
- make Asterisk, the build process will also automatically build pjproject
- and Asterisk will be statically linked to it. Once a particular version
- of pjproject is configured and built, it won't be configured or built
- again unless you run a 'make distclean'.
- To facilitate testing, when 'make install' is run, the pjsua and pjsystest
- utilities and the pjproject python bindings will be installed in
- ASTDATADIR/third-party/pjproject.
- The default behavior remains building with the shared pjproject
- installation, if any.
- app_confbridge
- ------------------
- * Added CONFBRIDGE_INFO(muted,) for querying the muted conference state.
- * Added Muted header to AMI ConfbridgeListRooms action response list events
- to indicate the muted conference state.
- * Added Muted column to CLI "confbridge list" output to indicate the muted
- conference state and made the locked column a yes/no value instead of a
- locked/unlocked value.
- REDIRECTING(reason)
- ------------------
- * The REDIRECTING(reason) value is now treated consistently between
- chan_sip and chan_pjsip.
- Both channel drivers match incoming reason values with values documented
- by REDIRECTING(reason) and values documented by RFC5806 regardless of
- whether they are quoted or not. RFC5806 values are mapped to the
- equivalent REDIRECTING(reason) documented value and is set in
- REDIRECTING(reason). e.g., an incoming RFC5806 'unconditional' value or a
- quoted string version ('"unconditional"') is converted to
- REDIRECTING(reason)'s 'cfu' value. The user's dialplan only needs to deal
- with 'cfu' instead of any of the aliases.
- The incoming 480 response reason text supported by chan_sip checks for
- known reason values and if not matched then puts quotes around the reason
- string and assigns that to REDIRECTING(reason).
- Both channel drivers send outgoing known REDIRECTING(reason) values as the
- unquoted RFC5806 equivalent. User custom values are either sent as is or
- with added quotes if SIP doesn't allow a character within the value as
- part of a RFC3261 Section 25.1 token. Note that there are still
- limitations on what characters can be put in a custom user value. e.g.,
- embedding quotes in the middle of the reason string is just going to cause
- you grief.
- * Setting a REDIRECTING(reason) value now recognizes RFC5806 aliases.
- e.g., Setting REDIRECTING(reason) to 'unconditional' is converted to the
- 'cfu' value.
- res_pjproject
- ------------------
- * This module is the successor of res_pjsip_log_forwarder. As well as
- handling the log forwarding (which now displays as 'pjproject:0' instead
- of 'pjsip:0'), it also adds a 'pjproject show buildopts' command to the CLI.
- This displays the compiled-in options of the pjproject installation
- Asterisk is currently running against.
- * Another feature of this module is the ability to map pjproject log levels
- to Asterisk log levels, or to suppress the pjproject log messages
- altogether. Many of the messages emitted by pjproject itself are the result
- of errors which Asterisk will ultimately handle so the messages can be
- misleading or just noise. A new config file (pjproject.conf) has been added
- to configure the mapping and a new CLI command (pjproject show log mappings)
- has been added to display the mappings currently in use.
- res_pjsip
- ------------------
- * Transports are now reloadable. In testing, no in-progress calls were
- disrupted if the ip address or port weren't changed, but the possibility
- still exists. To make sure there are no unintentional drops, a new option
- 'allow_reload', which defaults to 'no' has been added to transport. If
- left at the default, changes to the particular transport will be ignored.
- If set to 'yes', changes (if any) will be applied.
- * Added new global option (regcontext) to pjsip. When set, Asterisk will
- dynamically create and destroy a NoOp priority 1 extension
- for a given endpoint who registers or unregisters with us.
- * Endpoints and aors can now be identified by the username and realm in an
- incoming Authorization header. To use this feature, add "auth_username"
- to your endpoint's "identify_by" list. You can combine "auth_username"
- and the original "username" to test both the From/To and Authorization
- headers. For endpoints, the order is controlled by the global
- "endpoint_identifier_order" setting. For matching aors to an endpoint
- for inbound registration, the order is controlled by this option.
- * In conjunction with the "auth_username" change, 3 new options have been
- added to the global configuration object that control how many unidentified
- requests over a certain period from the same IP address can be received
- before a security altert is generated. A new CLI command
- "pjsip show unidentified_requests" will list the current candidates.
- res_pjsip_history
- ------------------
- * A new module, res_pjsip_history, has been added that provides SIP history
- viewing/filtering from the CLI. The module is intended to be used on systems
- with busy SIP traffic, where existing forms of viewing SIP messages - such
- as the res_pjsip_logger - may be inadequate. The module provides two new
- CLI commands:
- - 'pjsip set history {on|off|clear}' - this enables/disables SIP history
- capturing, as well as clears an existing history capture. Note that SIP
- packets captured are stored in memory until cleared. As a result, the
- history capture should only be used for debugging/viewing purposes, and
- should *NOT* be left permanently enabled on a system.
- - 'pjsip show history' - displays the captured SIP history. When invoked
- with no options, the entire captured history is displayed. Two options
- are available:
- -- 'entry <num>' - display a detailed view of a single SIP message in
- the history
- -- 'where ...' - filter the history based on some expression. For more
- information on filtering, view the current CLI help for the
- 'pjsip show history' command.
- Voicemail
- ------------------
- * app_voicemail and res_mwi_external can now be built together. The default
- remains to build app_voicemail and not res_mwi_external but if they are
- both built, the load order will cause res_mwi_external to load first and
- app_voicemail will be skipped. Use 'preload=app_voicemail.so' in
- modules.conf to force app_voicemail to be the voicemail provider.
- Queue
- -------------------
- * Added field ReasonPause on QueueMemberStatus if set when paused, the reason
- the queue member was paused.
- res_pjsip_sdp_rtp
- ------------------
- * A new option (bind_rtp_to_media_address) has been added to endpoint which
- will cause res_pjsip_sdp_rtp to actually bind the RTP instance to the
- media_address as well as using it in the SDP. If set, RTP packets will now
- originate from the media address instead of the operating system's "primary"
- ip address.
- res_rtp_asterisk
- ------------------
- * A new configuration section - ice_host_candidates - has been added to
- rtp.conf, allowing automatically discovered ICE host candidates to be
- overriden. This allows an Asterisk server behind a 1:1 NAT to send its
- external IP as a host candidate rather than relying on STUN to discover it.
- ------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 13.6.0 to Asterisk 13.7.0 ------------
- ------------------------------------------------------------------------------
- Codecs
- ------------------
- * Added format attribute negotiation for the VP8 video codec. Format attribute
- negotiation is provided by the res_format_attr_vp8 module.
- ConfBridge
- ------------------
- * A new "timeout" user profile option has been added. This configures the number
- of seconds that a participant may stay in the ConfBridge after joining. When
- the time expires, the user is ejected from the conference and CONFBRIDGE_RESULT
- is set to "TIMEOUT" on the channel.
- chan_sip
- ------------------
- * The websockets_enabled option has been added to the general section of
- sip.conf. The option is enabled by default to match the previous behavior.
- The option should be disabled when using res_pjsip_transport_websockets to
- ensure chan_sip will not conflict with PJSIP websockets.
- Dialplan Functions
- ------------------
- * The HOLD_INTERCEPT dialplan function now actually exists in the source tree.
- While support for the events was added in Asterisk 13.4.0, the function
- accidentally never made it in. That function is now present, and will cause
- the 'hold' raised by a channel to be intercepted and converted into an
- event instead.
- res_pjsip_outbound_registration
- -------------------------------
- * A new 'fatal_retry_interval' option has been added to outbound registration.
- When set (default is zero), and upon receiving a failure response to an
- outbound registration, registration is retried at the given interval up to
- 'max_retries'.
- * If res_statsd is loaded and a StatsD server is configured, basic statistics
- regarding the state of outbound registrations will now be emitted. This
- includes:
- - A GAUGE statistic for the overall number of outbound registrations, i.e.:
- PJSIP.registrations.count
- - A GAUGE statistic for the overall number of outbound registrations in a
- particular state, e.g.:
- PJSIP.registrations.state.Registered
- res_pjsip
- ------------------
- * The ability to use "like" has been added to the pjsip list and show
- CLI commands. For instance: CLI> pjsip list endpoints like abc
- * If res_statsd is loaded and a StatsD server is configured, basic statistics
- regarding the state of PJSIP contacts will now be emitted. This includes:
- - A GAUGE statistic for the overall number of contacts in a particular
- state, e.g.:
- PJSIP.contacts.states.Reachable
- - A TIMER statistic for the RTT time for each qualified contact, e.g.:
- PJSIP.contacts.alice@@127.0.0.1:5061.rtt
- res_sorcery_memory_cache
- ------------------------
- * A new caching strategy, full_backend_cache, has been added which caches
- all stored objects in the backend. When enabled all objects will be
- expired or go stale according to the configuration. As well when enabled
- all retrieval operations will be performed against the cache instead of
- the backend.
- func_callerid
- -------------------
- * CALLERID(pres) is now documented as a valid alternative to setting both
- CALLERID(name-pres) and CALLERID(num-pres) at once. Some channel drivers,
- like chan_sip, don't make a distinction between the two: they take the
- least public value from name-pres and num-pres. By using CALLERID(pres)
- for reading and writing, you touch the same combined value in the dialplan.
- The same applies to CONNECTEDLINE(pres), REDIRECTING(orig-pres),
- REDIRECTING(to-pres) and REDIRECTING(from-pres).
- res_endpoint_stats
- -------------------
- * A new module that emits StatsD statistics regarding Asterisk endpoints.
- This includes a total count of the number of endpoints, the count of the
- number of endpoints in the technology agnostic state of the endpoint -
- online or offline - as well as the number of channels associated with each
- endpoint. These are recorded as three different GAUGE statistics:
- - endpoints.count
- - endpoints.state.{unknown|offline|online}
- - endpoints.{tech}.{resource}.channels
- ------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 13.5.0 to Asterisk 13.6.0 ------------
- ------------------------------------------------------------------------------
- Dialplan Functions
- ------------------
- * The CHANNEL function, when used on a PJSIP channel, now exposes a 'call-id'
- extraction option when using with the 'pjsip' signalling option. It will
- return the SIP Call-ID associated with the INVITE request that established
- the PJSIP channel.
- ARI
- ------------------
- * Two new endpoint related events are now available: PeerStatusChange and
- ContactStatusChange. In particular, these events are useful when subscribing
- to all event sources, as they provide additional endpoint related
- information beyond the addition/removal of channels from an endpoint.
- The ARI version has been bumped to 1.9.0 as a result.
- * Added the ability to subscribe to all ARI events in Asterisk, regardless
- of whether the application 'controls' the resource. This is useful for
- scenarios where an ARI application merely wants to observe the system,
- as opposed to control it. There are two ways to accomplish this:
- (1) Via the WebSocket connection URI. A new query paramter, 'subscribeAll',
- has been added that, when present and True, will subscribe all
- specified applications to all ARI event sources in Asterisk.
- (2) Via the applications resource. An ARI client can, at any time, subscribe
- to all resources in an event source merely by not providing an explicit
- resource. For example, subscribing to an event source of 'channels:'
- as opposed to 'channels:12345' will subscribe the application to all
- channels.
- ------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 13.4.0 to Asterisk 13.5.0 ------------
- ------------------------------------------------------------------------------
- AMI
- ------------------
- * A new ContactStatus event has been added that reflects res_pjsip contact
- lifecycle changes: Created, Removed, Reachable, Unreachable, Unknown.
- * Added the Linkedid header to the common channel headers listed for each
- channel in AMI events.
- ARI
- ------------------
- * A new feature has been added that enables the retrieval of modules and
- module information through an HTTP request. Information on a single module
- can be also be retrieved. Individual modules can be loaded to Asterisk, as
- well as unloaded and reloaded.
- * A new resource has been added to the 'asterisk' resource, 'config/dynamic'.
- This resource allows for push configuration of sorcery derived objects
- within Asterisk. The resource supports creation, retrieval, updating, and
- deletion. Sorcery derived objects that are manipulated by this resource
- must have a sorcery wizard that supports the desired operations.
- * A new feature has been added that allows for the rotation of log channels
- through HTTP requests.
- res_pjsip
- ------------------
- * A new 'g726_non_standard' endpoint option has been added that, when set to
- 'yes' and g.726 audio is negotiated, forces the codec to be treated as if it
- is AAL2 packed on the channel.
- * A new 'rtp_keepalive' endpoint option has been added. This option specifies
- an interval, in seconds, at which we will send RTP comfort noise packets to
- the endpoint. This functions identically to chan_sip's "rtpkeepalive" option.
- * New 'rtp_timeout' and 'rtp_timeout_hold' endpoint options have been added.
- These options specify the amount of time, in seconds, that Asterisk will wait
- before terminating the call due to lack of received RTP. These are identical
- to chan_sip's rtptimeout and rtpholdtimeout options.
- ------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 13.3.0 to Asterisk 13.4.0 ------------
- ------------------------------------------------------------------------------
- chan_pjsip
- ------------------
- * New 'rpid_immediate' option to control if connected line update information
- goes to the caller immediately or waits for another reason to send the
- connected line information update. See the online option documentation for
- more information. Defaults to 'no' as setting it to 'yes' can result in
- many unnecessary messages being sent to the caller.
- * The configuration setting 'progressinband' now defaults to 'no', which
- matches the actual behavior of previous versions.
- * New 'line' and 'endpoint' options added on outbound registrations. This allows some
- identifying information to be added to the Contact of the outbound registration.
- If this information is present on messages received from the remote server
- the message will automatically be associated with the configured endpoint on the
- outbound registration.
- res_pjsip
- ------------------
- * A new CLI command has been added: "pjsip show settings", which shows
- both the global and system configuration settings.
- * A new global option has been added: "max_initial_qualify_time", which
- sets the maximum amount of time from startup that qualifies should be
- attempted on all contacts.
- * A new aor option has been added: "qualify_timeout", which sets the timeout
- in seconds for a qualify. The default is 3 seconds. This overrides the
- hard coded 32 seconds in pjproject.
- * Endpoint status will now change to "Unreachable" when all contacts are
- unavailable. When any contact becomes available, the endpoint will status
- will change back to "Reachable".
- res_ari_channels
- ------------------
- * Two new events, 'ChannelHold' and 'ChannelUnhold', have been added to the
- events data model. These events are raised when a channel indicates a hold
- or unhold, respectively.
- func_holdintercept
- ------------------
- * A new dialplan function, HOLD_INTERCEPT, has been added. This function, when
- placed on a channel, intercepts hold/unhold indications signalled by the
- channel and prevents them from moving on to other channels in a bridge with
- the hold initiator. Instead, AMI or ARI events are raised indicating that
- the channel wanted to place someone on hold. This allows external
- applications to implement their own custom hold/unhold logic.
- ------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 13.2.0 to Asterisk 13.3.0 ------------
- ------------------------------------------------------------------------------
- chan_pjsip/app_transfer
- ------------------
- * The Transfer application, when used with chan_pjsip, now supports using
- a PJSIP endpoint as the transfer destination. This is in addition to
- explicitly specifying a SIP URI to transfer to.
- res_ari_channels
- ------------------
- * The ARI /channels resource now supports a new operation, 'redirect'. The
- redirect operation will perform a technology and state specific redirection
- on the channel to a specified endpoint or destination. In the case of SIP
- technologies, this is either a 302 Redirect response to an on-going INVITE
- dialog or a SIP REFER request.
- res_pjsip
- ------------------
- * A new 'endpoint_identifier_order' option has been added that allows one to
- set the order by which endpoint identifiers are processed and checked. This
- option is specified under the 'global' type configuration section.
- ------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 13.1.0 to Asterisk 13.2.0 ------------
- ------------------------------------------------------------------------------
- res_pjsip_outbound_registration
- ------------------
- * The 'pjsip send unregister' command now stops further registrations.
- * A new command 'pjsip send register' has been added which allows you to
- start or restart periodic registration. It can be used after a
- 'send unregister' or after a 401 permanent error.
- chan_pjsip
- ------------------
- * New 'user_eq_phone' endpoint setting. This adds a 'user=phone' parameter
- to the request URI and From URI if the user is determined to be a phone number.
- * New global setting 'keep_alive_interval'. Setting this to a non-zero value
- will cause keep alive messages to be sent periodically over connection
- oriented transports.
- * New 'PJSIP_AOR' and 'PJSIP_CONTACT' dialplan functions have been added which
- allow examining PJSIP AORs or contacts from the dialplan.
- res_pjsip_config_wizard
- ------------------
- * This is a new module that adds streamlined configuration capability for
- chan_pjsip. It's targetted at users who have lots of basic configuration
- scenarios like 'phone' or 'agent' or 'trunk'. Additional information
- can be found in the sample configuration file at
- config/samples/pjsip_wizard.conf.sample.
- res_fax
- -----------
- * The T.38 negotiation timeout was previously hard coded at 5000 milliseconds
- and is now configurable via the 't38timeout' configuration option in
- res_fax.conf and via the fax options dialplan function 'FAXOPT(t38timeout)'.
- The default remains at 5000 milliseconds.
- PJSIP Transports
- ----------
- * The ca_list_path transport parameter has been added for TLS transports. This
- option behaves similarly to the old sip.conf option "tlscapath". In order to
- use this, you must be using PJProject version 2.4 or higher.
- ARI
- ------------------
- * The Originate operation now takes in an originator channel. The linked ID of
- this originator channel is applied to the newly originated outgoing channel.
- If using CEL this allows an association to be established between the two so
- it can be recognized that the originator is dialing the originated channel.
- * "language" (the default spoken language for the channel) is now included in
- the standard channel state output for suitable events.
- * The POST channels/{id} operation and the POST channels/{id}/continue operation
- now have a new "label" parameter. This allows for origination or continuation
- to a labeled priority in the dialplan instead of requiring a specific priority
- number. The ARI version has been bumped to 1.7.0 as a result.
- AMI
- ------------------
- * "Language" (the default spoken language for the channel) is now included in
- the standard channel state output for suitable events.
- * AMI actions that return a list of events have been made to return consistent
- headers for the action response event starting the list and the list complete
- event. The AMI version has been bumped to 2.7.0 as a result.
- ------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 13.0.0 to Asterisk 13.1.0 ------------
- ------------------------------------------------------------------------------
- AMI
- ------------------
- * Event NewConnectedLine is emitted when the connected line information on
- a channel changes.
- * The version of AMI has been bumped to 2.6.0 to account for the backwards
- compatible feature listed above.
- ARI
- ------------------
- * Event ChannelConnectedLine is emitted when the connected line information
- on a channel changes.
- * The version of ARI has been bumped to 1.6.0 to account for the backwards
- compatible feature listed above.
- Core Transfers
- -----------------
- The features.conf general section has three new configurable options:
- * transferdialattempts
- * transferretrysound
- * transferinvalidsound
- For more information on what these options do, see the Asterisk wiki:
- https://wiki.asterisk.org/wiki/x/W4fAAQ
- Channel Drivers
- ------------------
- chan_pjsip
- ------------------
- * New 'media_encryption_optimistic' endpoint setting. This will use SRTP
- when possible but does not consider lack of it a failure.
- res_pjsip_endpoint_identifer_ip
- ------------------
- * New CLI commands have been added: "pjsip show identif(y|ies)", which lists
- all configured PJSIP identify objects
- ------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 12 to Asterisk 13 --------------------
- ------------------------------------------------------------------------------
- Overview
- ------------------
- Asterisk 13 is the next Long Term Support (LTS) release of Asterisk. As such,
- the focus of development for this release of Asterisk was on improving the
- usability and features developed in the previous Standard release, Asterisk 12.
- Beyond a general refinement of end user features, development focussed heavily
- on the Asterisk APIs - the Asterisk Manager Interface (AMI) and the Asterisk
- REST Interface (ARI) - and the PJSIP stack in Asterisk. Some highlights of the
- new features include:
- * Asterisk security events are now provided via AMI, allowing end users to
- monitor their Asterisk system in real time for security related issues.
- * External control of Message Waiting Indicators (MWI) through both AMI and ARI.
- * Reception/transmission of out of call text messages using any supported
- channel driver/protocol stack through ARI.
- * Resource List Server support in the PJSIP stack, providing subscriptions to
- lists of resources and batched delivery of NOTIFY requests.
- * Inter-Asterisk distributed device state and mailbox state using the PJSIP
- stack.
- It is important to note that Asterisk 13 is built on the architecture developed
- during the previous Standard release, Asterisk 12. Users upgrading to
- Asterisk 13 should read about the new features in Asterisk 12 later in this file
- (see Functionality changes from Asterisk 11 to Asterisk 12), as well as the
- UPGRADE-12.txt delivered with this release. In particular, users upgrading to
- Asterisk 13 from a release prior to Asterisk 12 should read the specifications
- on AMI, CDRs, and CEL on the Asterisk wiki:
- * AMI - https://wiki.asterisk.org/wiki/x/dAFRAQ
- * CEL - https://wiki.asterisk.org/wiki/x/4ICLAQ
- * CDRs - https://wiki.asterisk.org/wiki/x/pwpRAQ
- Many new featuers in Asterisk 13 were introduced in point releases of
- Asterisk 12. Following this section - which documents the changes from all
- versions of Asterisk 12 to Asterisk 13 - users should examine the new features
- that were introduced in the point releases of Asterisk 12, as they are also
- included in Asterisk 13.
- Finally, all users upgrading to Asterisk 13 should read the UPGRADE.txt file
- delivered with this release.
- Build System
- ------------------
- * Sample config files have been moved from configs/ to a sub-folder of that
- directory, samples.
- * The menuselect utility has been pulled into the Asterisk repository. As a
- result, the libxml2 development library is now a required dependency for
- Asterisk.
- * A new Compiler Flag, REF_DEBUG, has been added. When enabled, reference
- counted objects will emit additional debug information to the refs log file
- located in the standard Asterisk log file directory. This log file is useful
- in tracking down object leaks and other reference counting issues. Prior to
- this version, this option was only available by modifying the source code
- directly. This change also includes a new script, refcounter.py, in the
- contrib folder that will process the refs log file. Note that this replaces
- the refcounter utility that could be built from the utils directory.
- Applications
- ------------------
- DahdiBarge
- ------------------
- * This module was deprecated and has been removed. Users of app_dahdibarge
- should use ChanSpy instead.
- MixMonitor
- ------------------
- * New options to play a beep when starting a recording and stopping a recording
- have been added. The option "p" will play a beep to the channel that starts
- the recording. The option "P" will play a beep to the channel that stops the
- recording.
- Queue
- ------------------
- * Queue rules can now be stored in a database table, queue_rules. Unlike other
- RealTime tables, the queue_rules table is only examined on module load or
- module reload. A new general setting has been added to queuerules.conf,
- 'realtime_rules', which, when set to 'yes', will cause app_queue to look in
- RealTime for additional queue rules to parse. Note that both the file and
- the database can be used as a provide of queue rules when 'realtime_rules'
- is set to 'yes'.
- When app_queue is reloaded, all rules are re-parsed and loaded into memory.
- There is no caching of RealTime queue rules.
- ReadFile
- ------------------
- * This module was deprecated and has been removed. Users of app_readfile
- should use func_env's FILE function instead.
- Say
- ------------------
- * The 'say' family of dialplan applications now support the Japanese
- language. The 'language' parameter in say.conf now recognizes a setting of
- 'ja', which will enable Japanese language specific mechanisms for playing
- back numbers, dates, and other items.
- SayCountPL
- ------------------
- * This module was deprecated and has been removed. Users of app_saycountpl
- should use the Say family of applications.
- SetMusicOnHold
- ------------------
- * The SetMusicOnHold dialplan application was deprecated and has been removed.
- Users of the application should use the CHANNEL function's musicclass
- setting instead.
- WaitMusicOnHold
- ------------------
- * The WaitMusicOnHold dialplan application was deprecated and has been
- removed. Users of the application should use MusicOnHold with a duration
- parameter instead.
- VoiceMail
- ------------------
- * VoiceMail and VoiceMailMain now support the Japanese language. The
- 'language' parameter in voicemail.conf now recognizes a setting of 'ja',
- which will enable prompts to be played back using a Japanese grammatical
- structure. Additional prompts are necessary for this functionality,
- including:
- - jb-arimasu: there is
- - jb-arimasen: there is not
- - jb-oshitekudasai: please press
- - jb-ni: article ni
- - jb-ga: article ga
- - jb-wa: article wa
- - jb-wo: article wo
- * Add the ability to specify multiple email addresses in configuration,
- separated by a |.
- CDR Backends
- ------------------
- cdr_sqlite
- -----------------
- * This module was deprecated and has been removed. Users of cdr_sqlite
- should use cdr_sqlite3_custom.
- cdr_pgsql
- ------------------
- * Added the ability to support PostgreSQL application_name on connections.
- This allows PostgreSQL to display the configured name in the
- pg_stat_activity view and CSV log entries. This setting is configurable
- for cdr_pgsql via the appname configuration setting in cdr_pgsql.conf.
- CEL Backends
- ------------------
- cel_pgsql
- ------------------
- * Added the ability to support PostgreSQL application_name on connections.
- This allows PostgreSQL to display the configured name in the
- pg_stat_activity view and CSV log entries. This setting is configurable
- for cel_pgsql via the appname configuration setting in cel_pgsql.conf.
- Channel Drivers
- ------------------
- chan_dahdi
- ------------------
- * SS7 support now requires libss7 v2.0 or later.
- * Added SS7 support for connected line and redirecting.
- * Most SS7 CLI commands are reworked as well as new SS7 commands added.
- See online CLI help.
- * Added several SS7 config option parameters described in
- chan_dahdi.conf.sample.
- chan_gtalk
- ------------------
- * This module was deprecated and has been removed. Users of chan_gtalk
- should use chan_motif.
- chan_h323
- ------------------
- * This module was deprecated and has been removed. Users of chan_h323
- should use chan_ooh323.
- chan_jingle
- ------------------
- * This module was deprecated and has been removed. Users of chan_jingle
- should use chan_motif.
- chan_pjsip
- ------------------
- * Added the CLI command 'pjsip list ciphers' so a user can know what
- OpenSSL names are available on their system for the pjsip.conf cipher
- option.
- chan_sip
- ------------------
- * The SIPPEER dialplan function no longer supports using a colon as a
- delimiter for parameters. The parameters for the function should be
- delimited using a comma.
- * The SIPCHANINFO dialplan function was deprecated and has been removed. Users
- of the function should use the CHANNEL function instead.
- Core
- ------------------
- Account Codes
- ------------------
- * Added functional peeraccount support. Except for Queue, the
- accountcode propagation is now consistently propagated to outgoing
- channels before dialing. The channel accountcode can change from its
- original non-empty value on channel creation for the following specific
- reasons. One, dialplan sets it using CHANNEL(accountcode). Two, an
- originate method that can specify an accountcode value. Three, the
- calling channel propagates its peeraccount or accountcode to the
- outgoing channel's accountcode before dialing. The change has two
- visible effects. One, local channels now cross accountcode and
- peeraccount across the special bridge between the ;1 and ;2 channels
- just like channels between normal bridges. Two, the
- CHANNEL(peeraccount) value can now be set before Dial and FollowMe to
- set the accountcode on the outgoing channel(s).
- For Queue, an outgoing channel's non-empty accountcode will not change
- unless explicitly set by CHANNEL(accountcode). The change has three
- visible effects. One, local channels now cross accountcode and
- peeraccount across the special bridge between the ;1 and ;2 channels
- just like channels between normal bridges. Two, the queue member will
- get an accountcode if it doesn't have one and one is available from the
- calling channel's peeraccount. Three, accountcode propagation includes
- local channel members where the accountcodes are propagated early
- enough to be available on the ;2 channel.
- AMI
- ------------------
- * New DeviceStateChanged and PresenceStateChanged AMI events have been added.
- These events are emitted whenever a device state or presence state change
- occurs. The events are controlled by res_manager_device_state.so and
- res_manager_presence_state.so. If the high frequency of these events is
- problematic for you, do not load these modules.
- * Added DialplanExtensionAdd and DialplanExtensionRemove AMI commands. They
- work in basically the same way as the 'dialplan add extension' and
- 'dialplan remove extension' CLI commands respectively.
- * New AMI action LoggerRotate reloads and rotates logger in the same manner
- as CLI command 'logger rotate'
- * New AMI Actions FAXSessions, FAXSession, and FAXStats replicate the
- functionality of CLI commands 'fax show sessions', 'fax show session',
- and fax show stats' respectively.
- * New AMI actions PRIDebugSet, PRIDebugFileSet, and PRIDebugFileUnset
- enable manager control over PRI debugging levels and file output.
- * AMI action PJSIPNotify may now send to a URI instead of only to a PJSIP
- endpoint as long as a default outbound endpoint is set. This also applies
- to the equivalent CLI command (pjsip send notify)
- * The AMI action PJSIPShowEndpoint now includes ContactStatusDetail sections
- that give information on Asterisk's attempts to qualify the endpoint.
- * The DialEnd event will now contain a Forward header if the dial is ending
- due to the call being forwarded. The contents of the Forward header is the
- extension in the number to which the call is being forwarded.
- CEL
- ------------------
- * The "bridge_technology" extra field key has been added to BRIDGE_ENTER
- and BRIDGE_EXIT events.
- Features
- ------------------
- * Channel variables are now substituted in arguments passed to applications
- run by using dynamic features.
- TLS
- ------------------
- * The TLS core in Asterisk now supports Perfect Forward Secrecy (PFS).
- Enabling PFS is attempted by default, and is dependent on the configuration
- of the module using TLS.
- - Ephemeral ECDH (ECDHE) is enabled by default. To disable it, do not
- specify a ECDHE cipher suite in sip.conf, for example:
- tlscipher=AES128-SHA:DES-CBC3-SHA
- - Ephemeral DH (DHE) is disabled by default. To enable it, add DH parameters
- into the private key file, e.g., sip.conf tlsprivatekey. For example, the
- default dh2048.pem - see
- http://www.opensource.apple.com/source/OpenSSL098/OpenSSL098-35.1/src/apps/dh2048.pem?txt
- - Because clients expect the server to prefer PFS, and because OpenSSL sorts
- its cipher suites by bit strength, see "openssl ciphers -v DEFAULT".
- Consider re-ordering your cipher suites in the respective configuration
- file. For example:
- tlscipher=AES128+kEECDH:AES128+kEDH:3DES+kEDH:AES128-SHA:DES-CBC3-SHA:-ADH:-AECDH
- will use PFS when offered by the client. Clients which do not offer PFS
- fall-back to AES-128 (or even 3DES, as recommended by RFC 3261).
- Functions
- ------------------
- JACK_HOOK
- ------------------
- * The JACK_HOOK function now supports audio with a sample rate higher than
- 8kHz.
- Resources
- ------------------
- res_config_pgsql
- ------------------
- * Added the ability to support PostgreSQL application_name on connections.
- This allows PostgreSQL to display the configured name in the
- pg_stat_activity view and CSV log entries. This setting is configurable
- for res_config_pgsql via the dbappname configuration setting in
- res_pgsql.conf.
- res_pjsip_outbound_publish
- ------------------
- * A new module, res_pjsip_outbound_publish provides the mechanisms for sending
- PUBLISH requests for specific event packages to another SIP User Agent.
- res_pjsip_pubsub
- ------------------
- * The publish/subscribe core module has been updated to support RFC 4662
- Resource Lists, allowing Asterisk to act as a Resource List Server (RLS).
- Resource lists are configured in pjsip.conf under a new object type,
- resource_list. Resource lists can contain either message-summary or presence
- events, and can be composed of specific resources that provide the event or
- other resource lists.
- * Inbound publication support is provided by a new object, inbound-publication.
- This configures res_pjsip_pubsub to accept PUBLISH requests from a particular
- resource. Which events are accepted is constructed dynamically; see
- res_pjsip_publish_asterisk for more information.
- res_pjsip_publish_asterisk
- ------------------
- * A new module, res_pjsip_publish_asterisk adds support for PUBLISH requests of
- Asterisk information to other Asterisk servers. This module is intended only
- for Asterisk to Asterisk exchanges of information. Currently, this includes
- both mailbox state and device state information.
- ------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 12.4.0 to Asterisk 12.5.0 ------------
- ------------------------------------------------------------------------------
- ARI
- ------------------
- * Stored recordings now support a new operation, copy. This will take an
- existing stored recording and copy it to a new location in the recordings
- directory.
- * LiveRecording objects now have three additional fields that can be reported
- in a RecordingFinished ARI event:
- - total_duration: the duration of the recording
- - talking_duration: optional. The duration of talking detected in the
- recording. This is only available if max_silence_seconds was specified
- when the recording was started.
- - silence_duration: optional. The duration of silence detected in the
- recording. This is only available if max_silence_seconds was specified
- when the recording was started.
- Note that all duration values are reported in seconds.
- * Users of ARI can now send and receive out of call text messages. Messages
- can be sent directly to a particular endpoint, or can be sent to the
- endpoints resource directly and inferred from the URI scheme. Text
- messages are passed to ARI clients as TextMessageReceived events. ARI
- clients can choose to receive text messages by subscribing to the particular
- endpoint technology or endpoints that they are interested in.
- * The applications resource now supports subscriptions to all endpoints of
- a particular channel technology. For example, subscribing to an eventSource
- of 'endpoint:PJSIP' will subscribe to all PJSIP endpoints.
- res_pjsip
- ------------------
- * The endpoint configuration object now supports 'accountcode'. Any channel
- created for an endpoint with this setting will have its accountcode set
- to the specified value.
- res_hep_rtcp
- ------------------
- * A new module, res_hep_rtcp, has been added that will forward RTCP call
- statistics to a HEP capture server. See res_hep for more information.
- Functions
- ------------------
- * Function AUDIOHOOK_INHERIT has been deprecated. Audiohooks are now
- unconditionally inhereted through masquerades. As a side benefit, more
- than one audiohook of a given type may persist through a masquerade now.
- ------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 12.3.0 to Asterisk 12.4.0 ------------
- ------------------------------------------------------------------------------
- AgentRequest
- ------------------
- * Returns new AGENT_STATUS value "NOT_CONNECTED" if the agent fails to
- connect with an incoming caller after being alerted to the presence
- of the incoming caller. The most likely reason this would happen is
- the agent did not acknowledge the call in time.
- AMI
- ------------------
- * New events have been added for the TALK_DETECT function. When the function
- is used on a channel, ChannelTalkingStart/ChannelTalkingStop events will be
- emitted to connected AMI clients indicating the start/stop of talking on
- the channel.
- ARI
- ------------------
- * New event models have been aded for the TALK_DETECT function. When the
- function is used on a channel, ChannelTalkingStarted/ChannelTalkingFinished
- events will be emitted to connected WebSockets subscribed to the channel,
- indicating the start/stop of talking on the channel.
- Functions
- ------------------
- * A new function, TALK_DETECT, has been added. When set on a channel, this
- fucntion causes events indicating the starting/stoping of talking on said
- channel to be emitted to both AMI and ARI clients.
- ------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 12.2.0 to Asterisk 12.3.0 ------------
- ------------------------------------------------------------------------------
- ARI
- ------------------
- * A new Playback URI 'tone' has been added. Tones are specified either as
- an indication name (e.g. 'tone:busy') from indications.conf or as a tone
- pattern (e.g. 'tone:240/250,0/250'). Tones differ from normal playback
- URIs in that they must be stopped manually and will continue to occupy
- a channel's ARI control queue until they are stopped. They also can not
- be rewound or fastforwarded.
- * User events can now be generated from ARI. Events can be signalled with
- arbitrary json variables, and include one or more of channel, bridge, or
- endpoint snapshots. An application must be specified which will receive
- the event message (other applications can subscribe to it). The message
- will also be delivered via AMI provided a channel is attached. Dialplan
- generated user event messages are still transmitted via the channel, and
- will only be received by a stasis application they are attached to or if
- the channel is subscribed to.
- chan_sip
- -----------
- * SIP peers can now specify 'trust_id_outbound' which affects RPID/PAI
- fields for prohibited callingpres information. Values are legacy, no, and
- yes. By default, legacy is used.
- trust_id_outbound=legacy - behavior remains the same as 1.8.26.1. When
- dealing with prohibited callingpres and sendrpid=pai/rpid, RPID/PAI
- headers are appended to outbound SIP messages just as they are with
- allowed callingpres values, but data about the remote party's identity is
- anonymized.
- When sendrpid=rpid, only the remote party's domain is anonymized.
- trust_id_outbound=no - when dealing with prohibited callingpres, RPID/PAI
- headers are not sent.
- trust_id_outbound=yes - RPID/PAI headers are applied with the full remote
- party information in tact even for prohibited callingpres information.
- In the case of PAI, a Privacy: id header will be appended for prohibited
- calling information to communicate that the private information should
- not be relayed to untrusted parties.
- res_parking
- ------------------
- * Manager action 'Park' now takes an additional argument 'AnnounceChannel'
- which can be used to announce the parked call's location to an arbitrary
- channel in a bridge. If 'Channel' and 'TimeoutChannel' are now the two
- parties in a one to one bridge, 'TimeoutChannel' is treated as having
- parked 'Channel' like with the Park Call DTMF feature and will receive
- announcements prior to being hung up.
- ------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 12.1.0 to Asterisk 12.2.0 ------------
- ------------------------------------------------------------------------------
- Record
- ------------------
- * Record application now has an option 'o' which allows 0 to act as an exit
- key setting the RECORD_STATUS variable to 'OPERATOR' instead of 'DTMF'
- ChanSpy
- --------------------------
- * ChanSpy now accepts a channel uniqueid or a fully specified channel name
- as the chanprefix parameter if the 'u' option is specified.
- ConfBridge
- --------------------------
- * CONFBRIDGE dialplan function is now capable of creating/modifying dynamic
- conference user menus.
- * CONFBRIDGE dialplan function is now capable of removing dynamic conference
- menus, bridge settings, and user settings that have been applied by the
- CONFBRIDGE dialplan function.
- * The ConfBridge dialplan application now sets a channel variable,
- CONFBRIGE_RESULT, upon exiting. This variable can be used to determine
- how a channel exited the conference.
- * Added conference user option 'announce_join_leave_review'. This option
- implies 'announce_join_leave' with the added effect that the user will
- be asked if they want to confirm or re-record the recording of their
- name when entering the conference
- Directory
- --------------------------
- * At exit, the Directory application now sets a channel variable
- DIRECTORY_RESULT to one of the following based on the reason for exiting:
- OPERATOR user requested operator by pressing '0' for operator
- ASSISTANT user requested assistant by pressing '*' for assistant
- TIMEOUT user pressed nothing and Directory stopped waiting
- HANGUP user's channel hung up
- SELECTED user selected a user from the directory and is routed
- USEREXIT user pressed '#' from the selection prompt to exit
- FAILED directory failed in a way that wasn't accounted for. Dang.
- Monitor
- ------------------
- * Monitor() - A new option, B(), has been added that will turn on a periodic
- beep while the call is being recorded.
- MusicOnHold
- --------------------------
- * MusicOnHold streams (all modes other than "files") now support wide band
- audio too.
- Page
- --------------------------
- * Added options 'b' and 'B' to apply predial handlers for outgoing calls
- and for the channel executing Page respectively.
- PickupChan
- --------------------------
- * PickupChan now accepts channel uniqueids of channels to pickup.
- Say
- --------------------------
- * If a channel variable SAY_DTMF_INTERRUPT is present on a channel and set
- to 'true' (case insensitive), then any Say application (SayNumber,
- SayDigits, SayAlpha, SayAlphaCase, SayUnixTime, and SayCounted) will
- anticipate DTMF. If DTMF is received, these applications will behave like
- the background application and jump to the received extension once a match
- is established or after a short period of inactivity.
- MixMonitor
- -------------------------
- * A new function, MIXMONITOR, has been added to allow access to individual
- instances of MixMonitor on a channel.
- * A new option, B(), has been added that will turn on a periodic beep while the
- call is being recorded.
- Channel Drivers
- -------------------------
- chan_sip
- -------------------------
- * TEL URI support for inbound INVITE requests has been added. chan_sip will
- now handle TEL schemes in the Request and From URIs. The phone-context in
- the Request URI will be stored in the SIPURIPHONECONTEXT channel variable on
- the inbound channel.
- Core
- ------------------
- * Exposed sorcery-based configuration files like pjsip.conf to dialplans via
- the new AST_SORCERY diaplan function.
- * Core Show Locks output now includes Thread/LWP ID if the platform
- supports this feature.
- * New "logger add channel" and "logger remove channel" CLI commands have
- been added to allow creation and deletion of dynamic logger channels
- without configuration changes. These dynamic logger channels will only
- exist until the next restart of asterisk.
- ARI
- ------------------
- * The live recording object on recording events now contains a target_uri
- field which contains the URI of what is being recorded.
- * The bridge type used when creating a bridge is now a comma separated list of
- bridge properties. Valid options are: mixing, holding, dtmf_events, and
- proxy_media.
- * A channelId can now be provided when creating a channel, either in the
- uri (POST channels/my-channel-id) or as query parameter. A local channel
- will suffix the second channel id with ';2' unless provided as query
- parameter otherChannelId.
- * A bridgeId can now be provided when creating a bridge, either in the uri
- (POST bridges/my-bridge-id) or as a query parameter.
- * A playbackId can be provided when starting a playback, either in the uri
- (POST channels/my-channel-id/play/my-playback-id /
- POST bridges/my-bridge-id/play/my-playback-id) or as a query parameter.
- * A snoop channel can be started with a snoopId, in the uri or query.
- AMI
- ------------------
- * Originate now takes optional parameters ChannelId and OtherChannelId,
- used to set the UniqueId on creation. The other id is assigned to the
- second channel when dialing LOCAL, or defaults to appending ;2 if only
- the single Id is given.
- * The Mixmonitor action now has a "Command" header that can be used to
- indicate a post-process command to run once recording finishes.
- RealTime
- ------------------
- * A new set of Alembic scripts has been added for CDR tables. This will create
- a 'cdr' table with the default schema that Asterisk expects.
- Functions
- ------------------
- * A new function was added: PERIODIC_HOOK. This allows running a periodic
- dialplan hook on a channel. Any audio generated by this hook will be
- injected into the call.
- Resources
- ------------------
- res_hep
- ------------------
- * A new module, res_hep, has been added, that acts as a generic packet
- capture agent for the Homer Encapsulation Protocol (HEP) version 3.
- It can be configured via hep.conf. Other modules can use res_hep to send
- message traffic to a HEP capture server.
- res_hep_pjsip
- ------------------
- * A new module, res_hep_pjsip, has been added that will forward PJSIP
- message traffic to a HEP capture server. See res_hep for more
- information.
- res_pjsip
- ------------------
- * transport and endpoint ToS options (tos, tos_audio, and tos_video) may now
- be set as the named set of ToS values (cs0-cs7, af11-af43, ef).
- * Added the following new CLI commands:
- - "pjsip show contacts" - list all current PJSIP contacts.
- - "pjsip show contact" - show specific information about a current PJSIP
- contact.
- - "pjsip show channel" - show detailed information about a PJSIP channel.
- res_pjsip_multihomed
- ------------------
- * A new module, res_pjsip_multihomed handles situations where the system
- Asterisk is running out has multiple interfaces. res_pjsip_multihomed
- determines which interface should be used during message sending.
- res_pjsip_pidf_digium_body_supplement
- ------------------
- * A new module, res_pjsip_pidf_digium_body_supplement provides NOTIFY
- request body formatting for presence support in Digium phones.
- res_pjsip_send_to_voicemail
- ------------------
- * A new module, res_pjsip_send_to_voicemail allows for REFER requests with
- particular headers to transfer a PJSIP channel directly to a particular
- extension that has VoiceMail. This is intended to be used with Digium
- phones that support this feature.
- res_pjsip_outbound_registration
- ------------------
- * A new CLI command has been added: "pjsip show registrations", which lists
- all configured PJSIP registrations
- ------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 12.0.0 to Asterisk 12.1.0 ------------
- ------------------------------------------------------------------------------
- AMI
- ------------------
- * Added a new module that provides AMI control over MWI within Asterisk,
- res_mwi_external_ami. Note that this module depends on res_mwi_external;
- for more information on enabling this module, see res_mwi_external.
- This module provides the MWIGet/MWIUpdate/MWIDelete actions, as well as
- the MWIGet/MWIGetComplete events.
- * The DialStatus field in the DialEnd event can now contain additional
- statuses that convey how the dial operation terminated. This includes
- ABORT, CONTINUE, and GOTO.
- * AMI will now emit security events. A new class authorization has been
- added in manager.conf for the security events, 'security'. The new events
- are:
- - FailedACL - raised when a request violates an ACL check
- - InvalidAccountID - raised when a request fails an authentication
- check due to an invalid account ID
- - SessionLimit - raised when a request fails due to exceeding the
- number of allowed concurrent sessions for a service
- - MemoryLimit - raised when a request fails due to an internal memory
- allocation failure
- - LoadAverageLimit - raised when a request fails because a configured
- load average limit has been reached
- - RequestNotAllowed - raised when a request is not allowed by
- the service
- - AuthMethodNotAllowed - raised when a request used an authentication
- method not allowed by the service
- - RequestBadFormat - raised when a request is received with bad formatting
- - SuccessfulAuth - raised when a request successfully authenticates
- - UnexpectedAddress - raised when a request has a different source address
- then what is expected for a session already in progress with a service
- - ChallengeResponseFailed - raised when a request's attempt to authenticate
- has been challenged, and the request failed the authentication challenge
- - InvalidPassword - raised when a request provides an invalid password
- during an authentication attempt
- - ChallengeSent - raised when an Asterisk service send an authentication
- challenge to a request
- - InvalidTransport - raised when a request attempts to use a transport not
- allowed by the Asterisk service
- * Bridge related events now have two additional fields: BridgeName and
- BridgeCreator. BridgeName is a descriptive name for the bridge;
- BridgeCreator is the name of the entity that created the bridge. This
- affects the following events: ConfbridgeStart, ConfbridgeEnd,
- ConfbridgeJoin, ConfbridgeLeave, ConfbridgeRecord, ConfbridgeStopRecord,
- ConfbridgeMute, ConfbridgeUnmute, ConfbridgeTalking, BlindTransfer,
- AttendedTransfer, BridgeCreate, BridgeDestroy, BridgeEnter, BridgeLeave
- ARI
- ------------------
- * The Bridge data model now contains the additional fields 'name' and
- 'creator'. The 'name' field conveys a descriptive name for the bridge;
- the 'creator' field conveys the name of the entity that created the bridge.
- This affects all responses to HTTP requests that return a Bridge data model
- as well as all event derived data models that contain a Bridge data model.
- The POST /bridges operation may now optionally specify a name to give to
- the bridge being created.
- * Added a new ARI resource 'mailboxes' which allows the creation and
- modification of mailboxes managed by external MWI. Modules res_mwi_external
- and res_stasis_mailbox must be enabled to use this resource. For more
- information on external MWI control, see res_mwi_external.
- * Added new events for externally initiated transfers. The event
- BridgeBlindTransfer is now raised when a channel initiates a blind transfer
- of a bridge in the ARI controlled application to the dialplan; the
- BridgeAttendedTransfer event is raised when a channel initiates an
- attended transfer of a bridge in the ARI controlled application to the
- dialplan.
- * Channel variables may now be specified as a body parameter to the
- POST /channels operation. The 'variables' key in the JSON is interpreted
- as a sequence of key/value pairs that will be added to the created channel
- as channel variables. Other parameters in the JSON body are treated as
- query parameters of the same name.
- HTTP
- ------------------
- * Asterisk's HTTP server now supports chunked Transfer-Encoding. This will be
- automatically handled by the HTTP server if a request is received with a
- Transfer-Encoding type of "chunked".
- res_pjsip
- ------------------
- * Path support has been added with the 'support_path' option in registration
- and aor sections.
- * A 'debug' option has been added to the globals section that will allow
- sip messages to be logged.
- * A 'set_var' option has been added to endpoints that will automatically
- set the desired variable(s) on a channel created for that endpoint.
- * Several new tables and columns have been added to the realtime schema for
- the res_pjsip related modules. See the UPGRADE.txt notes for updating
- the database schema.
- res_mwi_external
- ------------------
- * A new module, res_mwi_external, has been added to Asterisk. This module
- acts as a base framework that other modules can build on top of to allow
- an external system to control MWI within Asterisk. For implementations
- that make use of res_mwi_external, see res_mwi_external_ami and
- res_ari_mailboxes. Note that res_mwi_external canflicts with other modules
- that may produce MWI themselves, such as app_voicemail. res_mwi_external
- and other modules that depend on it cannot be built or loaded with
- app_voicemail present.
- res_pjsip
- ------------------
- * DNS functionality will now automatically be enabled if the system configured
- nameservers can be retrieved. If the system configured nameservers can not be
- retrieved the functionality will resort to using system resolution. Functionalty
- such as SRV records and failover will not be available if system resolution
- is in use.
- ------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 11 to Asterisk 12 --------------------
- ------------------------------------------------------------------------------
- Overview
- ------------------
- Asterisk 12 is a standard release of the Asterisk project. As such, the
- focus of development for this release was on core architectural changes and
- major new features. This includes:
- * A more flexible bridging core based on the Bridging API
- * A new internal message bus, Stasis
- * Major standardization and consistency improvements to AMI
- * Addition of the Asterisk RESTful Interface (ARI)
- * A new SIP channel driver, chan_pjsip
- In addition, as the vast majority of bridging in Asterisk was migrated to the
- Bridging API used by ConfBridge, major changes were made to most of the
- interfaces in Asterisk. This includes not only AMI, but also CDRs and CEL.
- Specifications have been written for the affected interfaces. These
- specifications are available on the Asterisk wiki:
- * AMI - https://wiki.asterisk.org/wiki/x/dAFRAQ
- * CEL - https://wiki.asterisk.org/wiki/x/4ICLAQ
- * CDRs - https://wiki.asterisk.org/wiki/x/pwpRAQ
- It is *highly* recommended that anyone migrating to Asterisk 12 read the
- information regarding its release both in this file and in the accompanying
- UPGRADE.txt file. More detailed information on the major changes can be found
- on the Asterisk wiki at https://wiki.asterisk.org/wiki/x/0YCLAQ.
- Build System
- ------------------
- * Added build option DISABLE_INLINE. This option can be used to work around a
- bug in gcc. For more information, see
- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47816
- * Removed the CHANNEL_TRACE development mode build option. Certain aspects of
- the CHANNEL_TRACE build option were incompatible with the new bridging
- architecture.
- * Asterisk now optionally uses libxslt to improve XML documentation generation
- and maintainability. If libxslt is not available on the system, some XML
- documentation will be incomplete.
- * Asterisk now depends on libjansson. If a package of libjansson is not
- available on your distro, please see http://www.digip.org/jansson/.
- * Asterisk now depends on libuuid and, optionally, uriparser. It is
- recommended that you install uriparser, even if it is optional.
- * The new SIP stack and channel driver uses a particular version of PJSIP.
- Please see https://wiki.asterisk.org/wiki/x/J4GLAQ for more information on
- configuring and installing PJSIP for usage with Asterisk.
- * Optional API was re-implemented to be more portable, and no longer requires
- weak reference support from the compiler. The build option OPTIONAL_API may
- be disabled to disable Optional API support.
- Applications
- ------------------
- AgentLogin
- ------------------
- * Along with AgentRequest, this application has been modified to be a
- replacement for chan_agent. The act of a channel calling the AgentLogin
- application places the channel into a pool of agents that can be
- requested by the AgentRequest application. Note that this application, as
- well as all other agent related functionality, is now provided by the
- app_agent_pool module. See chan_agent and AgentRequest for more information.
- * This application no longer performs agent authentication. If authentication
- is desired, the dialplan needs to perform this function using the
- Authenticate or VMAuthenticate application or through an AGI script before
- running AgentLogin.
- * If this application is called and the agent is already logged in, the
- dialplan will continue exection with the AGENT_STATUS channel variable set
- to ALREADY_LOGGED_IN.
- * The agents.conf schema has changed. Rather than specifying agents on a
- single line in comma delineated fashion, each agent is defined in a separate
- context. This allows agents to use the power of context templates in their
- definition.
- * A number of parameters from agents.conf have been removed. This includes
- maxloginretries, autologoffunavail, updatecdr, goodbye, group, recordformat,
- urlprefix, and savecallsin. These options were obsoleted by the move from
- a channel driver model to the bridging/application model provided by
- app_agent_pool.
- AgentRequest
- ------------------
- * A new application, this will request a logged in agent from the pool and
- bridge the requested channel with the channel calling this application.
- Logged in agents are those channels that called the AgentLogin application.
- If an agent cannot be requested from the pool, the AGENT_STATUS dialplan
- application will be set with an appropriate error value.
- AgentMonitorOutgoing
- ------------------
- * This application has been removed. It was a holdover from when
- AgentCallbackLogin was removed.
- AlarmReceiver
- ------------------
- * Added support for additional Ademco DTMF signalling formats, including
- Express 4+1, Express 4+2, High Speed and Super Fast.
- * Added channel variable ALARMRECEIVER_CALL_LIMIT. This sets the maximum
- call time, in milliseconds, to run the application.
- * Added channel variable ALARMRECEIVER_RETRIES_LIMIT. This sets the
- maximum number of times to retry the call.
- * Added a new configuration option answait. If set, the AlarmReceiver
- application will wait the number of milliseconds specified by answait
- after the channel has answered. Valid values range between 500
- milliseconds and 10000 milliseconds.
- * Added configuration option no_group_meta. If enabled, grouping of metadata
- information in the AlarmReceiver log file will be skipped.
- Answer
- ------------------
- * It is now no longer possible to bypass updating the CDR on the channel
- when answering. CDRs reflect the state of the channel and will always
- reflect the time they were Answered.
- BridgeWait
- ------------------
- * A new application in Asterisk, this will place the calling channel
- into a holding bridge, optionally entertaining them with some form of
- media. Channels participating in a holding bridge do not interact with
- other channels in the same holding bridge. Optionally, however, a channel
- may join as an announcer. Any media passed from an announcer channel is
- played to all channels in the holding bridge. Channels leave a holding
- bridge either when an optional timer expires, or via the ChannelRedirect
- application or AMI Redirect action.
- ConfBridge
- ------------------
- * All participants in a bridge can now be kicked out of a conference room
- by specifying the channel parameter as 'all' in the ConfBridge kick CLI
- command, i.e., 'confbridge kick <conference> all'
- * CLI output for the 'confbridge list' command has been improved. When
- displaying information about a particular bridge, flags will now be shown
- for the participating users indicating properties of that user.
- * The ConfbridgeList event now contains the following fields: WaitMarked,
- EndMarked, and Waiting. This displays additional properties about the
- user's profile, as well as whether or not the user is waiting for a
- Marked user to enter the conference.
- * Added a new option for conference recording, record_file_append. If enabled,
- when the recording is stopped and then re-started, the existing recording
- will be used and appended to.
- * ConfBridge now has the ability to set the language of announcements to the
- conference. The language can be set on a bridge profile in confbridge.conf
- or by the dialplan function CONFBRIDGE(bridge,language)=en.
- ControlPlayback
- ------------------
- * The channel variable CPLAYBACKSTATUS may now return the value
- 'REMOTESTOPPED'. This occurs when playback is stopped by a remote interface,
- such as AMI. See the AMI action ControlPlayback for more information.
- Directory
- ------------------
- * Added the 'a' option, which allows the caller to enter in an additional
- alias for the user in the directory. This option must be used in conjunction
- with the 'f', 'l', or 'b' options. Note that the alias for a user can be
- specified in voicemail.conf.
- DumpChan
- ------------------
- * The output of DumpChan no longer includes the DirectBridge or IndirectBridge
- fields. Instead, if a channel is in a bridge, it includes a BridgeID field
- containing the unique ID of the bridge that the channel happens to be in.
- ForkCDR
- ------------------
- * ForkCDR no longer automatically resets the forked CDR. See the 'r' option
- for more information.
- * Variables are no longer purged from the original CDR. See the 'v' option for
- more information.
- * The 'A' option has been removed. The Answer time on a CDR is never updated
- once set.
- * The 'd' option has been removed. The disposition on a CDR is a function of
- the state of the channel and cannot be altered.
- * The 'D' option has been removed. Who the Party B is on a CDR is a function
- of the state of the respective channels involved in the CDR and cannot be
- altered.
- * The 'r' option has been changed. Previously, ForkCDR always reset the CDR
- such that the start time and, if applicable, the answer time was updated.
- Now, by default, ForkCDR simply forks the CDR, maintaining any times. The
- 'r' option now triggers the Reset, setting the start time (and answer time
- if applicable) to the current time. Note that the 'a' option still sets
- the answer time to the current time if the channel was already answered.
- * The 's' option has been removed. A variable can be set on the original CDR
- if desired using the CDR function, and removed from a forked CDR using the
- same function.
- * The 'T' option has been removed. The concept of DONT_TOUCH and LOCKED no
- longer applies in the CDR engine.
- * The 'v' option now prevents the copy of the variables from the original CDR
- to the forked CDR. Previously the variables were always copied but were
- removed from the original. This was changed as removing variables from a CDR
- can have unintended side effects - this option allows the user to prevent
- propagation of variables from the original to the forked without modifying
- the original.
- MeetMe
- -------------------
- * Added the 'n' option to MeetMe to prevent application of the DENOISE
- function to a channel joining a conference. Some channel drivers that vary
- the number of audio samples in a voice frame will experience significant
- quality problems if a denoiser is attached to the channel; this option gives
- them the ability to remove the denoiser without having to unload func_speex.
- MixMonitor
- ------------------
- * The 'b' option now includes conferences as well as sounds played to the
- participants.
- * The AUDIOHOOK_INHERIT function is no longer needed to keep a MixMonitor
- running during a transfer. If a MixMonitor is started on a channel,
- the MixMonitor will continue to record the audio passing through the
- channel even in the presence of transfers.
- NoCDR
- ------------------
- * The NoCDR application is deprecated. Please use the CDR_PROP function to
- disable CDRs.
- * While the NoCDR application will prevent CDRs for a channel from being
- propagated to registered CDR backends, it will not prevent that data from
- being collected. Hence, a subsequent call to ResetCDR or the CDR_PROP
- function that enables CDRs on a channel will restore those records that have
- not yet been finalized.
- ParkAndAnnounce
- -------------------
- * The app_parkandannounce module has been removed. The application
- ParkAndAnnounce is now provided by the res_parking module. See the
- res_parking changes for more information.
- Queue
- -------------------
- * Added queue available hint. The hint can be added to the dialplan using the
- following syntax: exten,hint,Queue:{queue_name}_avail
- For example, if the name of the queue is 'markq':
- exten => 8501,hint,Queue:markq_avail
- This will report 'InUse' if there are no logged in agents or no free agents.
- It will report 'Idle' when an agent is free.
- * Queues now support a hint for member paused state. The hint uses the form
- 'Queue:{queue_name}_pause_{member_name}', where {queue_name} and {member_name}
- are the name of the queue and the name of the member to subscribe to,
- respectively. For example: exten => 8501,hint,Queue:sales_pause_mark.
- Members will show as In Use when paused.
- * The configuration options eventwhencalled and eventmemberstatus have been
- removed. As a result, the AMI events QueueMemberStatus, AgentCalled,
- AgentConnect, AgentComplete, AgentDump, and AgentRingNoAnswer will always be
- sent. The "Variable" fields will also no longer exist on the Agent* events.
- These events can be filtered out from a connected AMI client using the
- eventfilter setting in manager.conf.
- * The queue log now differentiates between blind and attended transfers. A
- blind transfer will result in a BLINDTRANSFER message with the destination
- context and extension. An attended transfer will result in an
- ATTENDEDTRANSFER message. This message will indicate the method by which
- the attended transfer was completed: "BRIDGE" for a bridge merge, "APP"
- for running an application on a bridge or channel, or "LINK" for linking
- two bridges together with local channels. The queue log will also now detect
- externally initiated blind and attended transfers and record the transfer
- status accordingly.
- * When performing queue pause/unpause on an interface without specifying an
- individual queue, the PAUSEALL/UNPAUSEALL event will only be logged if at
- least one member of any queue exists for that interface.
- * Added the 'queue_log_realtime_use_gmt' option to have timestamps in GMT
- for realtime queue log entries.
- ResetCDR
- ------------------
- * The 'e' option has been deprecated. Use the CDR_PROP function to re-enable
- CDRs when they were previously disabled on a channel.
- * The 'w' and 'a' options have been removed. Dispatching CDRs to registered
- backends occurs on an as-needed basis in order to preserve linkedid
- propagation and other needed behavior.
- SayAlphaCase
- ------------------
- * A new application, this is similar to SayAlpha except that it supports
- case sensitive playback of the specified characters. For example,
- SayAlphaCase(u,aBc) will result in 'a uppercase b c'.
- SetAMAFlags
- ------------------
- * This application is deprecated in favor of CHANNEL(amaflags).
- SendDTMF
- ------------------
- * The SendDTMF application will now accept 'W' as valid input. This will cause
- the application to delay one second while streaming DTMF.
- Stasis
- ------------------
- * A new application in Asterisk 12, this hands control of the channel calling
- the application over to an external system. Currently, external systems
- manipulate channels in Stasis through the Asterisk RESTful Interface (ARI).
- UserEvent
- ------------------
- * UserEvent will now handle duplicate keys by overwriting the previous value
- assigned to the key.
- * In addition to AMI, UserEvent invocations will now be distributed to any
- interested Stasis applications.
- VoiceMail
- ------------------
- * Mailboxes defined by app_voicemail MUST be referenced by the rest of the
- system as mailbox@context. The rest of the system cannot add @default
- to mailbox identifiers for app_voicemail that do not specify a context
- any longer. It is a mailbox identifier format that should only be
- interpreted by app_voicemail.
- * The voicemail.conf configuration file now has an 'alias' configuration
- parameter for use with the Directory application. The voicemail realtime
- database table schema has also been updated with an 'alias' column.
- Codecs
- ------------------
- * Pass through support has been added for both VP8 and Opus.
- * Added format attribute negotiation for the Opus codec. Format attribute
- negotiation is provided by the res_format_attr_opus module.
- Core
- ------------------
- * Masquerades as an operation inside Asterisk have been effectively hidden
- by the migration to the Bridging API. As such, many 'quirks' of Asterisk
- no longer occur. This includes renaming of channels, "<ZOMBIE>" channels,
- dropping of frame/audio hooks, and other internal implementation details
- that users had to deal with. This fundamental change has large implications
- throughout the changes documented for this version. For more information
- about the new core architecture of Asterisk, please see the Asterisk wiki.
- * Multiple parties in a bridge may now be transferred. If a participant in a
- multi-party bridge initiates a blind transfer, a Local channel will be used
- to execute the dialplan location that the transferer sent the parties to. If
- a participant in a multi-party bridge initiates an attended transfer,
- several options are possible. If the attended transfer results in a transfer
- to an application, a Local channel is used. If the attended transfer results
- in a transfer to another channel, the resulting channels will be merged into
- a single bridge.
- * The channel variable ATTENDED_TRANSFER_COMPLETE_SOUND is no longer channel
- driver specific. If the channel variable is set on the transferrer channel,
- the sound will be played to the target of an attended transfer.
- * The channel variable BRIDGEPEER becomes a comma separated list of peers in
- a multi-party bridge. The BRIDGEPEER value can have a maximum of 10 peers
- listed. Any more peers in the bridge will not be included in the list.
- BRIDGEPEER is not valid in holding bridges like parking since those channels
- do not talk to each other even though they are in a bridge.
- * The channel variable BRIDGEPVTCALLID is only valid for two party bridges
- and will contain a value if the BRIDGEPEER's channel driver supports it.
- * A channel variable ATTENDEDTRANSFER is now set which indicates which channel
- was responsible for an attended transfer in a similar fashion to
- BLINDTRANSFER.
- * Modules using the Configuration Framework or Sorcery must have XML
- configuration documentation. This configuration documentation is included
- with the rest of Asterisk's XML documentation, and is accessible via CLI
- commands. See the CLI changes for more information.
- AMI (Asterisk Manager Interface)
- ------------------
- * Major changes were made to both the syntax as well as the semantics of the
- AMI protocol. In particular, AMI events have been substantially improved
- in this version of Asterisk. For more information, please see the AMI
- specification at https://wiki.asterisk.org/wiki/x/dAFRAQ
- * AMI events that reference a particular channel or bridge will now always
- contain a standard set of fields. When multiple channels or bridges are
- referenced in an event, fields for at least some subset of the channels
- and bridges in the event will be prefixed with a descriptive name to avoid
- name collisions. See the AMI event documentation on the Asterisk wiki for
- more information.
- * The CLI command 'manager show commands' no longer truncates command names
- longer than 15 characters and no longer shows authorization requirement
- for commands. 'manager show command' now displays the privileges needed
- for using a given manager command instead.
- * The SIPshowpeer action will now include a 'SubscribeContext' field for a
- peer in its response if the peer has a subscribe context set.
- * The SIPqualifypeer action now acknowledges the request once it has
- established that the request is against a known peer. It also issues a new
- event, 'SIPQualifyPeerDone', once the qualify action has been completed.
- * The PlayDTMF action now supports an optional 'Duration' parameter. This
- specifies the duration of the digit to be played, in milliseconds.
- * Added VoicemailRefresh action to allow an external entity to trigger mailbox
- updates when changes occur instead of requiring the use of pollmailboxes.
- * Added a new action 'ControlPlayback'. The ControlPlayback action allows an
- AMI client to manipulate audio currently being played back on a channel. The
- supported operations depend on the application being used to send audio to
- the channel. When the audio playback was initiated using the ControlPlayback
- application or CONTROL STREAM FILE AGI command, the audio can be paused,
- stopped, restarted, reversed, or skipped forward. When initiated by other
- mechanisms (such as the Playback application), the audio can be stopped,
- reversed, or skipped forward.
- * Channel related events now contain a snapshot of channel state, adding new
- fields to many of these events.
- * The AMI event 'Newexten' field 'Extension' is deprecated, and may be removed
- in a future release. Please use the common 'Exten' field instead.
- * The AMI event 'UserEvent' from app_userevent now contains the channel state
- fields. The channel state fields will come before the body fields.
- * The AMI events 'ParkedCall', 'ParkedCallTimeOut', 'ParkedCallGiveUp', and
- 'UnParkedCall' have changed significantly in the new res_parking module.
- The 'Channel' and 'From' headers are gone. For the channel that was parked
- or is coming out of parking, a 'Parkee' channel snapshot is issued and it
- has a number of fields associated with it. The old 'Channel' header relayed
- the same data as the new 'ParkeeChannel' header.
- The 'From' field was ambiguous and changed meaning depending on the event.
- for most of these, it was the name of the channel that parked the call
- (the 'Parker'). There is no longer a header that provides this channel name,
- however the 'ParkerDialString' will contain a dialstring to redial the
- device that parked the call.
- On UnParkedCall events, the 'From' header would instead represent the
- channel responsible for retrieving the parkee. It receives a channel
- snapshot labeled 'Retriever'. The 'from' field is is replaced with
- 'RetrieverChannel'.
- Lastly, the 'Exten' field has been replaced with 'ParkingSpace'.
- * The AMI event 'Parkinglot' (response to 'Parkinglots' command) in a similar
- fashion has changed the field names 'StartExten' and 'StopExten' to
- 'StartSpace' and 'StopSpace' respectively.
- * The deprecated use of | (pipe) as a separator in the channelvars setting in
- manager.conf has been removed.
- * Channel Variables conveyed with a channel no longer contain the name of the
- channel as part of the key field, i.e., ChanVariable(SIP/foo): bar=baz is now
- ChanVariable: bar=baz. When multiple channels are present in a single AMI
- event, the various ChanVariable fields will contain a suffix that specifies
- which channel they correspond to.
- * The NewPeerAccount AMI event is no longer raised. The NewAccountCode AMI
- event always conveys the AMI event for a particular channel.
- * All 'Reload' events have been consolidated into a single event type. This
- event will always contain a Module field specifying the name of the module
- and a Status field denoting the result of the reload. All modules now issue
- this event when being reloaded.
- * The 'ModuleLoadReport' event has been removed. Most AMI connections would
- fail to receive this event due to being connected after modules have loaded.
- AMI connections that want to know when Asterisk is ready should listen for
- the 'FullyBooted' event.
- * app_fax now sends the same send fax/receive fax events as res_fax. The
- 'FaxSent' event is now the 'SendFAX' event, and the 'FaxReceived' event is
- now the 'ReceiveFAX' event.
- * The 'MusicOnHold' event is now two events: 'MusicOnHoldStart' and
- 'MusicOnHoldStop'. The sub type field has been removed.
- * The 'JabberEvent' event has been removed. It is not AMI's purpose to be a
- carrier for another protocol.
- * The Bridge Manager action's 'Playtone' header now accepts more fine-grained
- options. 'Channel1' and 'Channel2' may be specified in order to play a tone
- to the specific channel. 'Both' may be specified to play a tone to both
- channels. The old 'yes' option is still accepted as a way of playing the
- tone to Channel2 only.
- * The AMI 'Status' response event to the AMI Status action replaces the
- 'BridgedChannel' and 'BridgedUniqueid' headers with the 'BridgeID' header to
- indicate what bridge the channel is currently in.
- * The AMI 'Hold' event has been moved out of individual channel drivers, into
- core, and is now two events: 'Hold' and 'Unhold'. The status field has been
- removed.
- * The AMI events in app_queue have been made more consistent with each other.
- Events that reference channels (QueueCaller* and Agent*) will show
- information about each channel. The (infamous) 'Join' and 'Leave' AMI
- events have been changed to 'QueueCallerJoin' and 'QueueCallerLeave'.
- * The 'MCID' AMI event now publishes a channel snapshot when available and
- its non-channel-snapshot parameters now use either the "MCallerID" or
- 'MConnectedID' prefixes with Subaddr*, Name*, and Num* suffixes instead
- of 'CallerID' and 'ConnectedID' to avoid confusion with similarly named
- parameters in the channel snapshot.
- * The AMI events 'Agentlogin' and 'Agentlogoff' have been renamed
- 'AgentLogin' and 'AgentLogoff' respectively.
- * The 'Channel' key used in the 'AlarmClear', 'Alarm', and 'DNDState' has been
- renamed "DAHDIChannel" since it does not convey an Asterisk channel name.
- * 'ChannelUpdate' events have been removed.
- * All AMI events now contain a 'SystemName' field, if available.
- * Local channel optimization is now conveyed in two events:
- 'LocalOptimizationBegin' and 'LocalOptimizationEnd'. The Begin event is sent
- when the Local channel driver begins attempting to optimize itself out of
- the media path; the End event is sent after the channel halves have
- successfully optimized themselves out of the media path.
- * Local channel information in events is now prefixed with 'LocalOne' and
- 'LocalTwo'. This replaces the suffix of '1' and '2' for the two halves of
- the Local channel. This affects the 'LocalBridge', 'LocalOptimizationBegin',
- and 'LocalOptimizationEnd' events.
- * The option 'allowmultiplelogin' can now be set or overriden in a particular
- account. When set in the general context, it will act as the default
- setting for defined accounts.
- * The 'BridgeAction' event was removed. It technically added no value, as the
- Bridge Action already receives confirmation of the bridge through a
- successful completion Event.
- * The 'BridgeExec' events were removed. These events duplicated the events that
- occur in the Briding API, and are conveyed now through BridgeCreate,
- BridgeEnter, and BridgeLeave events.
- * The 'RTCPSent'/'RTCPReceived' events have been significantly modified from
- previous versions. They now report all SR/RR packets sent/received, and
- have been restructured to better reflect the data sent in a SR/RR. In
- particular, the event structure now supports multiple report blocks.
- * Added 'BlindTransfer' and 'AttendedTransfer' events. These events are
- raised when a blind transfer/attended transfer completes successfully.
- They contain information about the transfer that just completed, including
- the location of the transfered channel.
- * Added a 'security' class to AMI which outputs the required fields for
- security messages similar to the log messages from res_security_log
- * The AMI event 'ExtensionStatus' now contains a 'StatusText' field
- that describes the status value in a human readable string.
- CDR (Call Detail Records)
- ------------------
- * Significant changes have been made to the behavior of CDRs. The CDR engine
- was effectively rewritten and built on the Stasis message bus. For a full
- definition of CDR behavior in Asterisk 12, please read the specification
- on the Asterisk wiki (wiki.asterisk.org).
- * CDRs will now be created between all participants in a bridge. For each
- pair of channels in a bridge, a CDR is created to represent the path of
- communication between those two endpoints. This lets an end user choose who
- to bill for what during bridge operations with multiple parties.
- * The duration, billsec, start, answer, and end times now reflect the times
- associated with the current CDR for the channel, as opposed to a cumulative
- measurement of all CDRs for that channel.
- * When a CDR is dispatched, user defined CDR variables from both parties are
- included in the resulting CDR. If both parties have the same variable, only
- the Party A value is provided.
- * Added a new option to cdr.conf, 'debug'. When enabled, significantly more
- information regarding the CDR engine is logged as verbose messages. This
- option should only be used if the behavior of the CDR engine needs to be
- debugged.
- * Added CLI command 'cdr set debug {on|off}'. This toggles the 'debug' setting
- normally configured in cdr.conf.
- * Added CLI command 'cdr show active {channel}'. When {channel} is not
- specified, this command provides a summary of the channels with CDR
- information and their statistics. When {channel} is specified, it shows
- detailed information about all records associated with {channel}.
- CEL (Channel Event Logging)
- ------------------
- * CEL has undergone significant rework in Asterisk 12, and is now built on the
- Stasis message bus. Please see the specification for CEL on the Asterisk
- wiki at https://wiki.asterisk.org/wiki/x/4ICLAQ for more detailed
- information.
- * The 'extra' field of all CEL events that use it now consists of a JSON blob
- with key/value pairs which are defined in the Asterisk 12 CEL documentation.
- * BLINDTRANSFER events now report the transferee bridge unique
- identifier, extension, and context in a JSON blob as the extra string
- instead of the transferee channel name as the peer.
- * ATTENDEDTRANSFER events now report the peer as NULL and additional
- information in the 'extra' string as a JSON blob. For transfers that occur
- between two bridged channels, the 'extra' JSON blob contains the primary
- bridge unique identifier, the secondary channel name, and the secondary
- bridge unique identifier. For transfers that occur between a bridged channel
- and a channel running an app, the 'extra' JSON blob contains the primary
- bridge unique identifier, the secondary channel name, and the app name.
- * LOCAL_OPTIMIZE events have been added to convey local channel
- optimizations with the record occurring for the semi-one channel and
- the semi-two channel name in the peer field.
- * BRIDGE_START, BRIDGE_END, BRIDGE_UPDATE, 3WAY_START, 3WAY_END, CONF_ENTER,
- CONF_EXIT, CONF_START, and CONF_END events have all been removed. These
- events have been replaced by BRIDGE_ENTER/BRIDGE_EXIT. The BRIDGE_ENTER
- and BRIDGE_EXIT events are raised when a channel enters/exits any bridge,
- regardless of whether or not that bridge happens to contain multiple
- parties.
- CLI
- -------------------
- * When compiled with '--enable-dev-mode', the astobj2 library will now add
- several CLI commands that allow for inspection of ao2 containers that
- register themselves with astobj2. The CLI commands are 'astobj2 container
- dump', 'astobj2 container stats', and 'astobj2 container check'.
- * Added specific CLI commands for bridge inspection. This includes 'bridge
- show all', which lists all bridges in the system, and 'bridge show {id}',
- which provides specific information about a bridge.
- * Added CLI command 'bridge destroy'. This will destroy the specified bridge,
- ejecting the channels currently in the bridge. If the channels cannot
- continue in the dialplan or application that put them in the bridge, they
- will be hung up.
- * Added command 'bridge kick'. This will eject a single channel from a bridge.
- * Added commands to inspect and manipulate the registered bridge technologies.
- This include 'bridge technology show', which lists the registered bridge
- technologies, as well as 'bridge technology {suspend|unsuspend} {tech}',
- which controls whether or not a registered bridge technology can be used
- during smart bridge operations. If a technology is suspended, it will not
- be used when a bridge technology is picked for channels; when unsuspended,
- it can be used again.
- * The command 'config show help {module} {type} {option}' will show
- configuration documentation for modules with XML configuration
- documentation. When {module}, {type}, and {option} are omitted, a listing
- of all modules with registered documentation is displayed. When {module}
- is specified, a listing of all configuration types for that module is
- displayed, along with their synopsis. When {module} and {type} are
- specified, a listing of all configuration options for that type are
- displayed along with their synopsis. When {module}, {type}, and {option}
- are specified, detailed information for that configuration option is
- displayed.
- * Added 'core show sounds' and 'core show sound' CLI commands. These display
- a listing of all installed media sounds available on the system and
- detailed information about a sound, respectively.
- * 'xmldoc dump' has been added. This CLI command will dump the XML
- documentation DOM as a string to the specified file. The Asterisk core
- will populate certain XML elements pulled from the source files with
- additional run-time information; this command lets a user produce the
- XML documentation with all information.
- Features
- -------------------
- * Parking has been pulled from core and placed into a separate module called
- res_parking. See Parking changes below for more details. Configuration for
- parking should now be performed in res_parking.conf. Configuration for
- parking in features.conf is now unsupported.
- * Core attended transfers now have several new options. While performing an
- attended transfer, the transferer now has the following options:
- - *1 - cancel the attended transfer (configurable via atxferabort)
- - *2 - complete the attended transfer, dropping out of the call
- (configurable via atxfercomplete)
- - *3 - complete the attended transfer, but stay in the call. This will turn
- the call into a multi-party bridge (configurable via atxferthreeway)
- - *4 - swap to the other party. Once an attended transfer has begun, this
- options may be used multiple times (configurable via atxferswap)
- * For DTMF blind and attended transfers, the channel variable TRANSFER_CONTEXT
- must be on the channel initiating the transfer to have any effect.
- * The BRIDGE_FEATURES channel variable would previously only set features for
- the calling party and would set this feature regardless of whether the
- feature was in caps or in lowercase. Use of a caps feature for a letter
- will now apply the feature to the calling party while use of a lowercase
- letter will apply that feature to the called party.
- * Add support for automixmon to the BRIDGE_FEATURES channel variable.
- * The channel variable DYNAMIC_PEERNAME is redundant with BRIDGEPEER and is
- removed. The more useful DYNAMIC_WHO_ACTIVATED gives the channel name that
- activated the dynamic feature.
- * The channel variables DYNAMIC_FEATURENAME and DYNAMIC_WHO_ACTIVATED are set
- only on the channel executing the dynamic feature. Executing a dynamic
- feature on the bridge peer in a multi-party bridge will execute it on all
- peers of the activating channel.
- * You can now have the settings for a channel updated using the FEATURE()
- and FEATUREMAP() functions inherited to child channels by setting
- FEATURE(inherit)=yes.
- * automixmon now supports additional channel variables from automon including:
- TOUCH_MIXMONITOR_PREFIX, TOUCH_MIXMONITOR_MESSAGE_START,
- and TOUCH_MIXMONITOR_MESSAGE_STOP
- * A new general features.conf option 'recordingfailsound' has been added which
- allowssetting a failure sound for a user tries to invoke a recording feature
- such as automon or automixmon and it fails.
- * It is no longer necessary (or possible) to define the ATXFER_NULL_TECH in
- features.c for atxferdropcall=no to work properly. This option now just
- works.
- Logging
- -------------------
- * Added log rotation strategy 'none'. If set, no log rotation strategy will
- be used. Given that this can cause the Asterisk log files to grow quickly,
- this option should only be used if an external mechanism for log management
- is preferred.
- Realtime
- ------------------
- * Dynamic realtime tables for SIP Users can now include a 'path' field. This
- will store the path information for that peer when it registers. Realtime
- tables can also use the 'supportpath' field to enable Path header support.
- * LDAP realtime configurations for SIP Users now have the AstAccountPathSupport
- objectIdentifier. This maps to the supportpath option in sip.conf.
- Sorcery
- ------------------
- * Sorcery is a new data abstraction and object persistence API in Asterisk. It
- provides modules a useful abstraction on top of the many storage mechanisms
- in Asterisk, including the Asterisk Database, static configuration files,
- static Realtime, and dynamic Realtime. It also provides a caching service.
- Users can configure a hierarchy of data storage layers for specific modules
- in sorcery.conf.
- * All future modules which utilize Sorcery for object persistence must have a
- column named "id" within their schema when using the Sorcery realtime module.
- This column must be able to contain a string of up to 128 characters in length.
- Security Events Framework
- ------------------
- * Security Event timestamps now use ISO 8601 formatted date/time instead of
- the "seconds-microseconds" format that it was using previously.
- Stasis Message Bus
- ------------------
- * The Stasis message bus is a publish/subscribe message bus internal to
- Asterisk. Many services in Asterisk are built on the Stasis message bus,
- including AMI, ARI, CDRs, and CEL. Parameters controlling the operation of
- Stasis can be configured in stasis.conf. Note that these parameters operate
- at a very low level in Asterisk, and generally will not require changes.
- Channel Drivers
- ------------------
- * When a channel driver is configured to enable jiterbuffers, they are now
- applied unconditionally when a channel joins a bridge. If a jitterbuffer
- is already set for that channel when it enters, such as by the JITTERBUFFER
- function, then the existing jitterbuffer will be used and the one set by
- the channel driver will not be applied.
- chan_agent
- ------------------
- * chan_agent has been removed and replaced with AgentLogin and AgentRequest
- dialplan applications provided by the app_agent_pool module. Agents are
- connected with callers using the new AgentRequest dialplan application.
- The Agents:<agent-id> device state is available to monitor the status of an
- agent. See agents.conf.sample for valid configuration options.
- * The updatecdr option has been removed. Altering the names of channels on a
- CDR is not supported - the name of the channel is the name of the channel,
- and pretending otherwise helps no one. The AGENTUPDATECDR channel variable
- has also been removed, for the same reason.
- * The endcall and enddtmf configuration options are removed. Use the
- dialplan function CHANNEL(dtmf_features) to set DTMF features on the agent
- channel before calling AgentLogin.
- chan_bridge
- ------------------
- * chan_bridge has been removed. Its functionality has been incorporated
- directly into the ConfBridge application itself.
- chan_dahdi
- ------------------
- * Added the CLI command 'pri destroy span'. This will destroy the D-channel
- of the specified span and its B-channels. Note that this command should
- only be used if you understand the risks it entails.
- * The CLI command 'dahdi destroy channel' is now 'dahdi destroy channels'.
- A range of channels can be specified to be destroyed. Note that this command
- should only be used if you understand the risks it entails.
- * Added the CLI command 'dahdi create channels'. A range of channels can be
- specified to be created, or the keyword 'new' can be used to add channels
- not yet created.
- * The script specified by the chan_dahdi.conf mwimonitornotify option now gets
- the exact configured mailbox name. For app_voicemail mailboxes this is
- mailbox@context.
- * Added mwi_vm_boxes that also must be configured for ISDN MWI to be enabled.
- chan_iax2
- ------------------
- * IPv6 support has been added. We are now able to bind to and
- communicate using IPv6 addresses.
- chan_local
- ------------------
- * The /b option has been removed.
- * chan_local moved into the system core and is no longer a loadable module.
- chan_mobile
- ------------------
- * Added general support for busy detection.
- * Added ECAM command support for Sony Ericsson phones.
- chan_pjsip
- ------------------
- * A new SIP channel driver for Asterisk, chan_pjsip is built on the PJSIP
- SIP stack. A collection of resource modules provides the bulk of the SIP
- functionality. For more information on the new SIP channel driver, see
- https://wiki.asterisk.org/wiki/x/JYGLAQ
- chan_sip
- ------------------
- * Added support for RFC 3327 "Path" headers. This can be enabled in sip.conf
- using the 'supportpath' setting, either on a global basis or on a peer basis.
- This setting enables Asterisk to route outgoing out-of-dialog requests via a
- set of proxies by using a pre-loaded route-set defined by the Path headers in
- the REGISTER request. See Realtime updates for more configuration information.
- * The SIP_CODEC family of variables may now specify more than one codec. Each
- codec must be separated by a comma. The first codec specified is the
- preferred codec for the offer. This allows a dialplan writer to specify both
- audio and video codecs, e.g., Set(SIP_CODEC=ulaw,h264)
- * The 'callevents' parameter has been removed. Hold AMI events are now raised
- in the core, and can be filtered out using the 'eventfilter' parameter
- in manager.conf.
- * Added 'ignore_requested_pref'. When enabled, this will use the preferred
- codecs configured for a peer instead of the requested codec.
- * The option "register_retry_403" has been added to chan_sip to work around
- servers that are known to erroneously send 403 in response to valid
- REGISTER requests and allows Asterisk to continue attepmting to connect.
- chan_skinny
- ------------------
- * Added the 'immeddialkey' parameter. If set, when the user presses the
- configured key the already entered number will be immediately dialed. This
- is useful when the dialplan allows for variable length pattern matching.
- Valid options are '*' and '#'.
- * Added the 'callfwdtimeout' parameter. This configures the amount of time (in
- milliseconds) before a call forward is considered to not be answered.
- * The 'serviceurl' parameter allows Service URLs to be attached to line
- buttons.
- Functions
- ------------------
- AGENT
- ------------------
- * The password option has been disabled, as the AgentLogin application no
- longer provides authentication.
- AUDIOHOOK_INHERIT
- ------------------
- * Due to changes in the Asterisk core, this function is no longer needed to
- preserve a MixMonitor on a channel during transfer operations and dialplan
- execution. It is effectively obsolete.
- CDR (function)
- ------------------
- * The 'amaflags' and 'accountcode' attributes for the CDR function are
- deprecated. Use the CHANNEL function instead to access these attributes.
- * The 'l' option has been removed. When reading a CDR attribute, the most
- recent record is always used. When writing a CDR attribute, all non-finalized
- CDRs are updated.
- * The 'r' option has been removed, for the same reason as the 'l' option.
- * The 's' option has been removed, as LOCKED semantics no longer exist in the
- CDR engine.
- CDR_PROP
- ------------------
- * A new function CDR_PROP has been added. This function lets you set properties
- on a channel's active CDRs. This function is write-only. Properties accept
- boolean values to set/clear them on the channel's CDRs. Valid properties
- include:
- - 'party_a' - make this channel the preferred Party A in any CDR between two
- channels. If two channels have this property set, the creation time of the
- channel is used to determine who is Party A. Note that dialed channels are
- never Party A in a CDR.
- - 'disable' - disable CDRs on this channel. This is analogous to the NoCDR
- application when set to True, and analogous to the 'e' option in ResetCDR
- when set to False.
- CHANNEL
- ------------------
- * Added the argument 'dtmf_features'. This sets the DTMF features that will be
- enabled on a channel when it enters a bridge. Allowed values are 'T', 'K',
- 'H', 'W', and 'X', and are analogous to the parameters passed to the Dial
- application.
- * Added the argument 'after_bridge_goto'. This can be set to a parseable Goto
- string, i.e., [[context],extension],priority. If set on a channel, if a
- channel leaves a bridge but is not hung up it will resume dialplan execution
- at that location.
- JITTERBUFFER
- ------------------
- * JITTERBUFFER now accepts an argument of 'disabled' which can be used
- to remove jitterbuffers previously set on a channel with JITTERBUFFER.
- The value of this setting is ignored when disabled is used for the argument.
- PJSIP_DIAL_CONTACTS
- ------------------
- * A new function provided by chan_pjsip, this function can be used in
- conjunction with the Dial application to construct a dial string that will
- dial all contacts on an Address of Record associated with a chan_pjsip
- endpoint.
- PJSIP_MEDIA_OFFER
- ------------------
- * Provided by chan_pjsip, this function sets the codecs to be offerred on the
- outbound channel prior to dialing.
- REDIRECTING
- ------------------
- * Redirecting reasons can now be set to arbitrary strings. This means
- that the REDIRECTING dialplan function can be used to set the redirecting
- reason to any string. It also allows for custom strings to be read as the
- redirecting reason from SIP Diversion headers.
- SPEECH_ENGINE
- ------------------
- * The SPEECH_ENGINE function now supports read operations. When read from, it
- will return the current value of the requested attribute.
- VMCOUNT:
- ------------------
- * Mailboxes defined by app_voicemail MUST be referenced by the rest of the
- system as mailbox@context. The rest of the system cannot add @default
- to mailbox identifiers for app_voicemail that do not specify a context
- any longer. It is a mailbox identifier format that should only be
- interpreted by app_voicemail.
- Resources
- ------------------
- res_agi (Asterisk Gateway Interface)
- ------------------
- * The manager event AGIExec has been split into AGIExecStart and AGIExecEnd.
- * The manager event AsyncAGI has been split into AsyncAGIStart, AsyncAGIExec,
- and AsyncAGIEnd.
- * The CONTROL STREAM FILE command now accepts an offsetms parameter. This
- will start the playback of the audio at the position specified. It will
- also return the final position of the file in 'endpos'.
- * The CONTROL STREAM FILE command will now populate the CPLAYBACKSTATUS
- channel variable if the user stopped the file playback or if a remote
- entity stopped the playback. If neither stopped the playback, it will
- indicate the overall success/failure of the playback. If stopped early,
- the final offset of the file will be set in the CPLAYBACKOFFSET channel
- variable.
- * The SAY ALPHA command now accepts an additional parameter to control
- whether it specifies the case of uppercase, lowercase, or all letters to
- provide functionality similar to SayAlphaCase.
- res_ari (Asterisk RESTful Interface) (and others)
- ------------------
- * The Asterisk RESTful Interface (ARI) provides a mechanism to expose and
- control telephony primitives in Asterisk by remote client. This includes
- channels, bridges, endpoints, media, and other fundamental concepts. Users
- of ARI can develop their own communications applications, controlling
- multiple channels using an HTTP RESTful interface and receiving JSON events
- about the objects via a WebSocket connection. ARI can be configured in
- Asterisk via ari.conf. For more information on ARI, see
- https://wiki.asterisk.org/wiki/x/0YCLAQ
- res_parking
- -------------------
- * Parking has been extracted from the Asterisk core as a loadable module,
- res_parking. Configuration for parking is now provided by res_parking.conf.
- Configuration through features.conf is no longer supported.
- * res_parking uses the configuration framework. If an invalid configuration is
- supplied, res_parking will fail to load or fail to reload. Previously,
- invalid configurations would generally be accepted, with certain errors
- resulting in individually disabled parking lots.
- * Parked calls are now placed in bridges. While this is largely an
- architectural change, it does have implications on how channels in a parking
- lot are viewed. For example, commands that display channels in bridges will
- now also display the channels in a parking lot.
- * The order of arguments for the new parking applications have been modified.
- Timeout and return context/exten/priority are now implemented as options,
- while the name of the parking lot is now the first parameter. See the
- application documentation for Park, ParkedCall, and ParkAndAnnounce for more
- in-depth information as well as syntax.
- * Extensions are by default no longer automatically created in the dialplan to
- park calls or pickup parked calls. Generation of dialplan extensions can be
- enabled using the 'parkext' configuration option.
- * ADSI functionality for parking is no longer supported. The 'adsipark'
- configuration option has been removed as a result.
- * The PARKINGSLOT channel variable has been deprecated in favor of
- PARKING_SPACE to match the naming scheme of the new system.
- * PARKING_SPACE and PARKEDLOT channel variables will now be set for a parked
- channel even when the configuration option 'comebactoorigin' is enabled.
- * A new CLI command 'parking show' has been added. This allows a user to
- inspect the parking lots that are currently in use.
- 'parking show <parkinglot>' will also show the parked calls in a specific
- parking lot.
- * The CLI command 'parkedcalls' is now deprecated in favor of
- 'parking show <parkinglot>'.
- * The AMI command 'ParkedCalls' will now accept a 'ParkingLot' argument which
- can be used to get a list of parked calls for a specific parking lot.
- * The AMI command 'Park' field 'Channel2' has been deprecated and replaced
- with 'TimeoutChannel'. If both 'Channel2' and 'TimeoutChannel' are
- specified, 'TimeoutChannel' will be used. The field 'TimeoutChannel' is no
- longer a required argument.
- * The ParkAndAnnounce application is now provided through res_parking instead
- of through the separate app_parkandannounce module.
- * ParkAndAnnounce will no longer go to the next position in dialplan on timeout
- by default. Instead, it will follow the timeout rules of the parking lot. The
- old behavior can be reproduced by using the 'c' option.
- * Dynamic parking lots will now fail to be created under the following
- conditions:
- - if the parking lot specified by PARKINGDYNAMIC does not exist
- - if they require exclusive park and parkedcall extensions which overlap
- with existing parking lots.
- * Dynamic parking lots will be cleared on reload for dynamic parking lots that
- currently contain no calls. Dynamic parking lots containing parked calls
- will persist through the reloads without alteration.
- * If 'parkext_exclusive' is set for a parking lot and that extension is
- already in use when that parking lot tries to register it, this is now
- considered a parking system configuration error. Configurations which do
- this will be rejected.
- * Added channel variable PARKER_FLAT. This contains the name of the extension
- that would be used if 'comebacktoorigin' is enabled. This can be useful when
- comebacktoorigin is disabled, but the dialplan or an external control
- mechanism wants to use the extension in the park-dial context that was
- generated to re-dial the parker on timeout.
- res_pjsip (and many others)
- ------------------
- * A large number of resource modules make up the SIP stack based on pjsip.
- The chan_pjsip channel driver users these resource modules to provide
- various SIP functionality in Asterisk. The majority of configuration for
- these modules is performed in pjsip.conf. Other modules may use their
- own configuration files.
- * Added 'set_var' option for an endpoint. For each variable specified that
- variable gets set upon creation of a channel involving the endpoint.
- res_rtp_asterisk
- ------------------
- * ICE/STUN/TURN support in res_rtp_asterisk has been made optional. To enable
- them, an Asterisk-specific version of PJSIP needs to be installed.
- Tarballs are available from https://github.com/asterisk/pjproject/tags/.
- res_statsd/res_chan_stats
- ------------------
- * A new resource module, res_statsd, has been added, which acts as a statsd
- client. This module allows Asterisk to publish statistics to a statsd
- server. In conjunction with res_chan_stats, it will publish statistics about
- channels to the statsd server. It can be configured via res_statsd.conf.
- res_xmpp
- ------------------
- * Device state for XMPP buddies is now available using the following format:
- XMPP/<client name>/<buddy address>
- If any resource is available the device state is considered to be not in use.
- If no resources exist or all are unavailable the device state is considered
- to be unavailable.
- Scripts
- ------------------
- Realtime/Database Scripts
- ------------------
- * Asterisk previously included example db schemas in the contrib/realtime/
- directory of the source tree. This has been replaced by a set of database
- migrations using the Alembic framework. This allows you to use alembic to
- initialize the database for you. It will also serve as a database migration
- tool when upgrading Asterisk in the future.
- See contrib/ast-db-manage/README.md for more details.
- sip_to_res_pjsip.py
- -------------------
- * A new script has been added in the contrib/scripts/sip_to_res_pjsip folder.
- This python script will convert an existing sip.conf file to a
- pjsip.conf file, for use with the chan_pjsip channel driver. This script
- is meant to be an aid in converting an existing chan_sip configuration to
- a chan_pjsip configuration, but it is expected that configuration beyond
- what the script provides will be needed.
- ------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 10 to Asterisk 11 --------------------
- ------------------------------------------------------------------------------
- Build System
- -------------------
- * The Asterisk build system will now build and install a shared library
- (libasteriskssl.so) used to wrap various initialization and shutdown functions
- from the libssl and libcrypto libraries provided by OpenSSL. This is done so
- that Asterisk can ensure that these functions do *not* get called by any
- modules that are loaded into Asterisk, since they should only be called once
- in any single process. If desired, this feature can be disabled by supplying
- the "--disable-asteriskssl" option to the configure script.
- * A new make target, 'full', has been added to the Makefile. This performs
- the same compilation actions as make all, but will also scan the entirety of
- each source file for documentation. This option is needed to generate AMI
- event documentation. Note that your system must have Python in order for
- this make target to succeed.
- * The optimization portion of the build system has been reworked to avoid
- broken builds on certain architectures. All architecture-specific
- optimization has been removed in favor of using -march=native to allow gcc
- to detect the environment in which it is running when possible. This can
- be toggled as BUILD_NATIVE under "Compiler Flags" in menuselect.
- * BUILD_CFLAGS and BUILD_LDFLAGS can now be passed to menuselect, e.g.,
- make BUILD_CFLAGS="whatever" BUILD_LDFLAGS="whatever"
- * Remove "asterisk/version.h" in favor of "asterisk/ast_version.h". If you
- previously parsed the header file to obtain the version of Asterisk, you
- will now have to go through Asterisk to get the version information.
- Applications
- -------------------
- Bridge
- -------------------
- * Added 'F()' option. Similar to the dial option, this can be supplied with
- arguments indicating where the callee should go after the caller is hung up,
- or without options specified, the priority after the Queue will be used.
- ConfBridge
- -------------------
- * Added menu action admin_toggle_mute_participants. This will mute / unmute
- all non-admin participants on a conference. The confbridge configuration
- file also allows for the default sounds played to all conference users when
- this occurs to be overriden using sound_participants_unmuted and
- sound_participants_muted.
- * Added menu action participant_count. This will playback the number of
- current participants in a conference.
- * Added announcement configuration option to user profile. If set the sound
- file will be played to the user, and only the user, upon joining the
- conference bridge.
- * Added record_file_append option that defaults to "yes", but if set to no
- will create a new file between each start/stop recording.
- Dial
- -------------------
- * Added 'b' and 'B' options to Dial that execute a Gosub on callee and caller
- channels respectively before the callee channels are called.
- ExternalIVR
- -------------------
- * Added support for IPv6.
- * Add interrupt ('I') command to ExternalIVR. Sending this command from an
- external process will cause the current playlist to be cleared, including
- stopping any audio file that is currently playing. This is useful when you
- want to interrupt audio playback only when specific DTMF is entered by the
- caller.
- FollowMe
- -------------------
- * A new option, 'I' has been added to app_followme. By setting this option,
- Asterisk will not update the caller with connected line changes when they
- occur. This is similar to app_dial and app_queue.
- * The 'N' option is now ignored if the call is already answered.
- * Added 'b' and 'B' options to FollowMe that execute a Gosub on callee
- and caller channels respectively before the callee channels are called.
- * The winning FollowMe outgoing call is now put on hold if the caller put it on
- hold.
- MixMonitor
- ------------------
- * MixMonitor hooks now have IDs associated with them which can be used to
- assign a target to StopMixMonitor. Use of MixMonitor's i(variable) option
- will allow storage of the MixMontior ID in a channel variable. StopMixmonitor
- now accepts that ID as an argument.
- * Added 'm' option, which stores a copy of the recording as a voicemail in the
- indicated mailboxes.
- MySQL
- -------------------
- * The connect action in app_mysql now allows you to specify a port number to
- connect to. This is useful if you run a MySQL server on a non-standard
- port number.
- OSP Applications
- -------------------
- * Increased the default number of allowed destinations from 5 to 12.
- Page
- -------------------
- * The app_page application now no longer depends on DAHDI or app_meetme. It
- has been re-architected to use app_confbridge internally.
- Queue
- -------------------
- * Added queue options autopausebusy and autopauseunavail for automatically
- pausing a queue member when their device reports busy or congestion.
- * The 'ignorebusy' option for queue members has been deprecated in favor of
- the option 'ringinuse. Also a 'queue set ringinuse' CLI command has been
- added as well as an AMI action 'QueueMemberRingInUse' to set this variable on a
- per interface basis. Individual ringinuse values can now be set in
- queues.conf via an argument to member definitions. Lastly, the queue
- 'ringinuse' setting now only determines defaults for the per member
- 'ringinuse' setting and does not override per member settings like it does
- in earlier versions.
- * Added 'F()' option. Similar to the dial option, this can be supplied with
- arguments indicating where the callee should go after the caller is hung up,
- or without options specified, the priority after the Queue will be used.
- * Added new option log_member_name_as_agent, which will cause the membername to
- be logged in the agent field for ADDMEMBER and REMOVEMEMBER queue events if a
- state_interface has been set.
- * Add queue monitoring hints. exten => 8501,hint,Queue:markq.
- * App_queue will now play periodic announcements for the caller that
- holds the first position in the queue while waiting for answer.
- SayUnixTime
- ------------------
- * Added 'j' option to SayUnixTime. SayUnixTime no longer auto jumps to extension
- when receiving DTMF. Use the 'j' option to enable extension jumping. Also
- changed arguments to SayUnixTime so that every option is truly optional even
- when using multiple options (so that j option could be used without having to
- manually specify timezone and format) There are other benefits, e.g., format
- can now be used without specifying time zone as well.
- Voicemail
- ------------------
- * Addition of the VM_INFO function - see Function changes.
- * The imapserver, imapport, and imapflags configuration options can now be
- overriden on a user by user basis.
- * When voicemail plays a message's envelope with saycid set to yes, when
- reaching the caller id field it will play a recording of a file with the same
- base name as the sender's callerid if there is a similarly named file in
- <astspooldir>/recordings/callerids/
- * Voicemails now contains a unique message identifier "msg_id", which is stored
- in the message envelope with the sound files. IMAP backends will now store
- the message identifiers with a header of "X-Asterisk-VM-Message-ID". ODBC
- backends will store the message identifier in a "msg_id" column. See
- UPGRADE.txt for more information.
- * Added VoiceMailPlayMsg application. This application will play a single
- voicemail message from a mailbox. The result of the application, SUCCESS or
- FAILED, is stored in the channel variable VOICEMAIL_PLAYBACKSTATUS.
- Functions
- ------------------
- * Hangup handlers can be attached to channels using the CHANNEL() function.
- Hangup handlers will run when the channel is hung up similar to the h
- extension. The hangup_handler_push option will push a GoSub compatible
- location in the dialplan onto the channel's hangup handler stack. The
- hangup_handler_pop option will remove the last added location, and optionally
- replace it with a new GoSub compatible location. The hangup_handler_wipe
- option will remove all locations on the stack, and optionally add a new
- location.
- * The expression parser now recognizes the ABS() absolute value function,
- which will convert negative floating point values to positive values.
- * FAXOPT(faxdetect) will enable a generic fax detect framehook for dialplan
- control of faxdetect.
- * Addition of the VM_INFO function that can be used to retrieve voicemail
- user information, such as the email address and full name.
- The MAILBOX_EXISTS dialplan function has been deprecated in favour of
- VM_INFO.
- * The REDIRECTING function now supports the redirecting original party id
- and reason.
- * Two new functions have been added: FEATURE() and FEATUREMAP(). FEATURE()
- lets you set some of the configuration options from the [general] section
- of features.conf on a per-channel basis. FEATUREMAP() lets you customize
- the key sequence used to activate built-in features, such as blindxfer,
- and automon. See the built-in documentation for details.
- * MESSAGE(from) for incoming SIP messages now returns "display-name" <uri>
- instead of simply the uri. This is the format that MessageSend() can use
- in the from parameter for outgoing SIP messages.
- * Added the PRESENCE_STATE function. This allows retrieving presence state
- information from any presence state provider. It also allows setting
- presence state information from a CustomPresence presence state provider.
- See AMI/CLI changes for related commands.
- * Added the AMI_CLIENT function to make manager account attributes available
- to the dialplan. It currently supports returning the current number of
- active sessions for a given account.
- * Added support for private party ID information to CALLERID, CONNECTEDLINE,
- and the REDIRECTING functions.
- Channel Drivers
- ------------------
- chan_local
- ------------------
- * Added a manager event "LocalBridge" for local channel call bridges between
- the two pseudo-channels created.
- chan_dahdi
- ------------------
- * Added dialtone_detect option for analog ports to disconnect incoming
- calls when dialtone is detected.
- * Added option colp_send to send ISDN connected line information. Allowed
- settings are block, to not send any connected line information; connect, to
- send connected line information on initial connect; and update, to send
- information on any update during a call. Default is update.
- * Add options namedcallgroup and namedpickupgroup to support installations
- where a higher number of groups (>64) is required.
- * Added support to use private party ID information with PRI calls.
- chan_motif
- ------------------
- * A new channel driver named chan_motif has been added which provides support for
- Google Talk and Jingle in a single channel driver. This new channel driver includes
- support for both audio and video, RFC2833 DTMF, all codecs supported by Asterisk,
- hold, unhold, and ringing notification. It is also compliant with the current Jingle
- specification, current Google Jingle specification, and the original Google Talk
- protocol.
- chan_ooh323
- ------------------
- * Added NAT support for RTP. Setting in config is 'nat', which can be set
- globally and overriden on a peer by peer basis.
- * Direct media functionality has been added. Options in config are:
- directmedia (directrtp) and directrtpsetup (earlydirect)
- * ChannelUpdate events now contain a CallRef header.
- chan_sip
- ------------------
- * Asterisk will no longer substitute CID number for CID name in the display
- name field if CID number exists without a CID name. This change improves
- compatibility with certain device features such as Avaya IP500's directory
- lookup service.
- * A new setting for autocreatepeer (autocreatepeer=persistent) allows peers
- created using that setting to not be removed during SIP reload.
- * Added settings recordonfeature and recordofffeature. When receiving an INFO
- request with a "Record:" header, this will turn the requested feature on/off.
- Allowed values are 'automon', 'automixmon', and blank to disable. Note that
- dynamic features must be enabled and configured properly on the requesting
- channel for this to function properly.
- * Add support to realtime for the 'callbackextension' option.
- * When multiple peers exist with the same address, but differing
- callbackextension options, incoming requests that are matched by address
- will be matched to the peer with the matching callbackextension if it is
- available.
- * Two new NAT options, auto_force_rport and auto_comedia, have been added
- which set the force_rport and comedia options automatically if Asterisk
- detects that an incoming SIP request crossed a NAT after being sent by
- the remote endpoint.
- * The default global nat setting in sip.conf has been changed from force_rport
- to auto_force_rport.
- * NAT settings are now a combinable list of options. The equivalent of the
- deprecated nat=yes is nat=force_rport,comedia. nat=no behaves as before.
- * Adds an option send_diversion which can be disabled to prevent
- diversion headers from automatically being added to INVITE requests.
- * Add support for lightweight NAT keepalive. If enabled a blank packet will
- be sent to the remote host at a given interval to keep the NAT mapping open.
- This can be enabled using the keepalive configuration option.
- * Add option 'tonezone' to specify country code for indications. This option
- can be set both globally and overridden for specific peers.
- * The SIP Security Events Framework now supports IPv6.
- * Add a new setting for directmedia, 'outgoing', to alleviate INVITE glares
- between multiple user agents. When set, for directmedia reinvites,
- Asterisk will not send an immediate reinvite on an incoming call leg. This
- option is useful when peered with another SIP user agent that is known to
- send immediate direct media reinvites upon call establishment.
- * Add support for WebSocket transport. This can be configured using 'ws' or 'wss'
- as the transport.
- * Add options subminexpiry and submaxexpiry to set limits of subscription
- timer independently from registration timer settings. The setting of the
- registration timer limits still is done by options minexpiry, maxexpiry
- and defaultexpiry. For backwards compatibility the setting of minexpiry
- and maxexpiry also is used to configure the subscription timer limits if
- subminexpiry and submaxexpiry are not set in sip.conf.
- * Set registration timer limits to default values when reloading sip
- configuration and values are not set by configuration.
- * Add options namedcallgroup and namedpickupgroup to support installations
- where a higher number of groups (>64) is required.
- * When a MESSAGE request is received, the address the request was received from
- is now saved in the SIP_RECVADDR variable.
- * Add ANI2/OLI parsing for SIP. The "From" header in INVITE requests is now
- parsed for the presence of "isup-oli", "ss7-oli", or "oli" tags. If present,
- the ANI2/OLI information is set on the channel, which can be retrieved using
- the CALLERID function.
- * Peers can now be configured to support negotiation of ICE candidates using
- the setting icesupport. See res_rtp_asterisk changes for more information.
- * Added support for format attribute negotiation. See the Codecs changes for
- more information.
- * Extra headers specified with SIPAddHeader are sent with the REFER message
- when using Transfer application. See refer_addheaders in sip.conf.sample.
- * Added support to use private party ID information with calls.
- * Adds an option discard_remote_hold_retrieval that when set stops telling
- the peer to start music on hold.
- chan_skinny
- ------------------
- * Added skinny version 17 protocol support.
- chan_unistim
- --------------------
- * Added option 'dtmf_duration' allowing playback time of DTMF tones to be set
- * Modified option 'date_format' to allow options to display date in 31Jan and Jan31
- formats as options 0 and 1. The previous options 0 and 1 now map to options 2 and 3
- as per the UNISTIM protocol.
- * Fixed issues with dialtone not matching indications.conf and mute stopping rx
- as well as tx. Also fixed issue with call "Timer" displaying as French "Dur\E9e"
- * Added ability to use multiple lines for a single phone. This allows multiple
- calls to occur on a single phone, using callwaiting and switching between calls.
- * Added option 'sharpdial' allowing end dialing by pressing # key
- * Added option 'interdigit_timer' to control phone dial timeout
- * Added options 'cwstyle', 'cwvolume' controlling callwaiting appearance
- * Added global 'debug' option, that enables debug in channel driver
- * Added ability to translate on-screen menu in multiple languages. Tested on
- Russian languages. Supported encodings: ISO 8859-1, ISO 8859-2, ISO 8859-4,
- ISO 8859-5, ISO 2022-JP. Language controlled by 'language' and on-screen
- menu of phone
- * In addition to English added French and Russian languages for on-screen menus
- * Reworked dialing number input: added dialing by timeout, immediate dial on
- on dialplan compare, phone number length now not limited by screen size
- * Added ability to pickup a call using features.conf defined value and
- on-screen key
- chan_mISDN:
- ------------------
- * Add options namedcallgroup and namedpickupgroup to support installations
- where a higher number of groups (>64) is required.
- * Added support to use private party ID information with calls.
- Core
- ------------------
- * The minimum DTMF duration can now be configured in asterisk.conf
- as "mindtmfduration". The default value is (as before) set to 80 ms.
- (previously it was only available in source code)
- * Named ACLs can now be specified in acl.conf and used in configurations that
- use ACLs. As a general rule, if some derivative of 'permit' or 'deny' is
- used to specify an ACL, a similar form of 'acl' will add a named ACL to the
- working ACL. In addition, some CLI commands have been added to provide
- show information and allow for module reloading - see CLI Changes.
- * Rules in ACLs (specified using 'permit' and 'deny') can now contain multiple
- items (separated by commas), and items in the rule can be negated by prefixing
- them with '!'. This simplifies Asterisk Realtime configurations, since it is no
- longer necessray to control the order that the 'permit' and 'deny' columns are
- returned from queries.
- * DUNDi now allows the built in variables ${NUMBER}, ${IPADDR} and ${SECRET} to
- be used within the dynamic weight attribute when specifying a mapping.
- * CEL backends can now be configured to show "USER_DEFINED" in the EventName
- header, instead of putting the user defined event name there. When enabled
- the UserDefType header is added for user defined events. This feature is
- enabled with the setting show_user_defined.
- * Macro has been deprecated in favor of GoSub. For redirecting and connected
- line purposes use the following variables instead of their macro equivalents:
- REDIRECTING_SEND_SUB, REDIRECTING_SEND_SUB_ARGS, CONNECTED_LINE_SEND_SUB,
- CONNECTED_LINE_SEND_SUB_ARGS. For CCSS, use cc_callback_sub instead of
- cc_callback_macro in channel configurations.
- * Asterisk can now use a system-provided NetBSD editline library (libedit) if it
- is available.
- * Call files now support the "early_media" option to connect with an outgoing
- extension when early media is received.
- * Added support to use private party ID information with calls.
- AGI
- ------------------
- * A new channel variable, AGIEXITONHANGUP, has been added which allows
- Asterisk to behave like it did in Asterisk 1.4 and earlier where the
- AGI application would exit immediately after a channel hangup is detected.
- * IPv6 addresses are now supported when using FastAGI (agi://). Hostnames
- are resolved and each address is attempted in turn until one succeeds or
- all fail.
- AMI (Asterisk Manager Interface)
- ------------------
- * The originate action now has an option "EarlyMedia" that enables the
- call to bridge when we get early media in the call. Previously,
- early media was disregarded always when originating calls using AMI.
- * Added setvar= option to manager accounts (much like sip.conf)
- * Originate now generates an error response if the extension given is not found
- in the dialplan
- * MixMonitor will now show IDs associated with the mixmonitor upon creating
- them if the i(variable) option is used. StopMixMonitor will accept
- MixMonitorID as an option to close specific MixMonitors.
- * The SIPshowpeer manager action response field "SIP-Forcerport" has been
- updated to include information about peers configured with
- nat=auto_force_rport by returning "A" if auto_force_rport is set and nat is
- detected, and "a" if it is set and nat is not detected. "Y" and "N" are still
- returned if auto_force_rport is not enabled.
- * Added SIPpeerstatus manager command which will generate PeerStatus events
- similar to the existing PeerStatus events found in chan_sip on demand.
- * Hangup now can take a regular expression as the Channel option. If you want
- to hangup multiple channels, use /regex/ as the Channel option. Existing
- behavior to hanging up a single channel is unchanged, but if you pass a regex,
- the manager will send you a list of channels back that were hung up.
- * Support for IPv6 addresses has been added.
- * AMI Events can now be documented in the Asterisk source. Note that AMI event
- documentation is only generated when Asterisk is compiled using 'make full'.
- See the CLI section for commands to display AMI event information.
- * The AMI Hangup event now includes the AccountCode header so you can easily
- correlate with AMI Newchannel events.
- * The QueueMemberStatus, QueueMemberAdded, and QueueMember events now include
- the StateInterface of the queue member.
- * Added AMI event SessionTimeout in the Call category that is issued when a
- call is terminated due to either RTP stream inactivity or SIP session timer
- expiration.
- * CEL events can now contain a user defined header UserDefType. See core
- changes for more information.
- * OOH323 ChannelUpdate events now contain a CallRef header.
- * Added PresenceState command. This command will report the presence state for
- the given presence provider.
- * Added Parkinglots command. This will list all parking lots as a series of
- AMI Parkinglot events.
- * Added MessageSend command. This behaves in the same manner as the
- MessageSend application, and is a technolgoy agnostic mechanism to send out
- of call text messages.
- * Added "message" class authorization. This grants an account permission to
- send out of call messages. Write-only.
- CLI
- -------------------
- * The "dialplan add include" command has been modified to create context a context
- if one does not already exist. For instance, "dialplan add include foo into bar"
- will create context "bar" if it does not already exist.
- * A "dialplan remove context" command has been added to remove a context from
- the dialplan
- * The "mixmonitor list <channel>" command will now show MixMonitor ID, and the
- filenames of all running mixmonitors on a channel.
- * The debug level of "pri set debug" is now a bitmask ranging from 0 to 15 if
- numeric instead of 0, 1, or 2.
- * "stun show status" will show a table describing how the STUN client is
- behaving.
- * "acl show [named acl]" will show information regarding a Named ACL. The
- acl module can be reloaded with "reload acl".
- * Added CLI command to display AMI event information - "manager show events",
- which shows a list of all known and documented AMI events, and "manager show
- event [event name]", which shows detail information about a specific AMI
- event.
- * The result of the CLI command "queue show" now includes the state interface
- information of the queue member.
- * The command "core set verbose" will now set a separate level of logging for
- each remote console without affecting any other console.
- * Added command "cdr show pgsql status" to check connection status
- * "sip show channel" will now display the complete route set.
- * Added "presencestate list" command. This command will list all custom
- presence states that have been set by using the PRESENCE_STATE dialplan
- function.
- * Added "presencestate change <entity> <state>[,<subtype>[,message[,options]]]"
- command. This changes a custom presence to a new state.
- Codecs
- -------------------
- * Codec lists may now be modified by the '!' character, to allow succinct
- specification of a list of codecs allowed and disallowed, without the
- requirement to use two different keywords. For example, to specify all
- codecs except g729 and g723, one need only specify allow=all,!g729,!g723.
- * Add support for parsing SDP attributes, generating SDP attributes, and
- passing it through. This support includes codecs such as H.263, H.264, SILK,
- and CELT. You are able to set up a call and have attribute information pass.
- This should help considerably with video calls.
- * The iLBC codec can now use a system-provided iLBC library if one is installed,
- just like the GSM codec.
- DUNDi changes
- -------------
- * Added CLI commands dundi show hints and dundi show cache which will list DUNDi
- 'DONTASK' hints in the cache and list all DUNDi cache entires respectively.
- Logging
- -------------------
- * Asterisk version and build information is now logged at the beginning of a
- log file.
- * Threads belonging to a particular call are now linked with callids which get
- added to any log messages produced by those threads. Log messages can now be
- easily identified as involved with a certain call by looking at their call id.
- Call ids may also be attached to log messages for just about any case where
- it can be determined to be related to a particular call.
- * Each logging destination and console now have an independent notion of the
- current verbosity level. Logger.conf now allows an optional argument to
- the 'verbose' specifier, indicating the level of verbosity sent to that
- particular logging destination. Additionally, remote consoles now each
- have their own verbosity level. The command 'core set verbose' will now set
- a separate level for each remote console without affecting any other
- console.
- Music On Hold
- -------------------
- * Added 'announcement' option which will play at the start of MOH and between
- songs in modes of MOH that can detect transitions between songs (eg.
- files, mp3, etc).
- Parking
- -------------------
- * New per parking lot options: comebackcontext and comebackdialtime. See
- configs/features.conf.sample for more details.
- * Channel variable PARKER is now set when comebacktoorigin is disabled in
- a parking lot.
- * Channel variable PARKEDCALL is now set with the name of the parking lot
- when a timeout occurs.
- CDRs
- -------------------
- CDR Postgresql Driver
- -------------------
- * Added command "cdr show pgsql status" to check connection status
- CDR Adaptive ODBC Driver
- -------------------
- * Added schema option for databases that support specifying a schema.
- Resource Modules
- -------------------
- Calendars
- -------------------
- * A CALENDAR_SUCCESS=1/0 channel variable is now set to show whether or not
- CALENDAR_WRITE has completed successfully.
- res_rtp_asterisk
- -------------------
- * A new option, 'probation' has been added to rtp.conf
- RTP in strictrtp mode can now require more than 1 packet to exit learning
- mode with a new source (and by default requires 4). The probation option
- allows the user to change the required number of packets in sequence to any
- desired value. Use a value of 1 to essentially restore the old behavior.
- Also, with strictrtp on, Asterisk will now drop all packets until learning
- mode has successfully exited. These changes are based on how pjmedia handles
- media sources and source changes.
- * Add support for ICE/STUN/TURN in res_rtp_asterisk. This option can be
- enabled or disabled using the icesupport setting. A variety of other
- settings have been introduced to configure STUN/TURN connections.
- res_corosync
- -------------------
- * A new module, res_corosync, has been introduced. This module uses the
- Corosync cluster enginer (http://www.corosync.org) to allow a local cluster
- of Asterisk servers to both Message Waiting Indication (MWI) and/or
- Device State (presence) information. This module is very similar to, and
- is a replacement for the res_ais module that was in previous releases of
- Asterisk.
- res_xmpp
- -------------------
- * This module adds a cleaned up, drop-in replacement for res_jabber called
- res_xmpp. This provides the same externally facing functionality but is
- implemented differently internally. res_jabber has been deprecated in favor
- of res_xmpp; please see the UPGRADE.txt file for more information.
- Scripts
- -------------------
- * The safe_asterisk script has been updated to allow several of its parameters
- to be set from environment variables. This also enables a custom run
- directory of Asterisk to be specified, instead of defaulting to /tmp.
- * The live_ast script will now look for the LIVE_AST_BASE_DIR variable and use
- its value to determine the directory to assume is the top-level directory of
- the source tree. If the variable is not set, it defaults to the current
- behavior and uses the current working directory.
- ------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 1.8 to Asterisk 10 -------------------
- ------------------------------------------------------------------------------
- Text Messaging
- --------------
- * Asterisk now has protocol independent support for processing text messages
- outside of a call. Messages are routed through the Asterisk dialplan.
- SIP MESSAGE and XMPP are currently supported. There are options in
- jabber.conf and sip.conf to allow enabling these features.
- -> jabber.conf: see the "sendtodialplan" and "context" options.
- -> sip.conf: see the "accept_outofcall_message", "auth_message_requests"
- and "outofcall_message_context" options.
- The MESSAGE() dialplan function and MessageSend() application have been
- added to go along with this functionality. More detailed usage information
- can be found on the Asterisk wiki (http://wiki.asterisk.org/).
- * If real-time text support (T.140) is negotiated, it will be preferred for
- sending text via the SendText application. For example, via SIP, messages
- that were once sent via the SIP MESSAGE request would be sent via RTP if
- T.140 text is negotiated for a call.
- Parking
- -------
- * parkedmusicclass can now be set for non-default parking lots.
- Asterisk Manager Interface
- --------------------------
- * PeerStatus now includes Address and Port.
- * Added Hold events for when the remote party puts the call on and off hold
- for chan_dahdi ISDN channels.
- * Added new action MeetmeListRooms to list active conferences (shows same
- data as "meetme list" at the CLI).
- * DAHDIShowChannels, SIPshowpeer, SIPpeers, and IAXpeers now contains a
- Description field that is set by 'description' in the channel configuration
- file.
- * Added Uniqueid header to UserEvent.
- * Added new action FilterAdd to control event filters for the current session.
- This requires the system permission and uses the same filter syntax as
- filters that can be defined in manager.conf
- * The Unlink event is now a Bridge event with Bridgestatus: Unlink. Previous
- versions had some instances of the event converted, but others were left
- as-is. All Unlink events should now be converted to Bridge events. The AMI
- protocol version number was incremented to 1.2 as a result of this change.
- Asterisk HTTP Server
- --------------------------
- * The HTTP Server can bind to IPv6 addresses.
- chan_dahdi
- --------------------------
- * Busy tone patterns featuring 2 silence and 2 tone lengths can now be used
- with busydetect. usage example: busypattern=200,200,200,600
- CLI Changes
- --------------------------
- * New 'gtalk show settings' command showing the current settings loaded from
- gtalk.conf.
- * The 'logger reload' command now supports an optional argument, specifying an
- alternate configuration file to use.
- * 'dialplan add extension' command will now automatically create a context if
- the specified context does not exist with a message indicated it did so.
- * 'sip show peers', 'iax show peers', and 'dahdi show peers' now contains a
- Description field which can be populated with 'description' in the channel
- configuration files (sip.conf, iax2.conf, and chan_dahdi.conf).
- CDR
- --------------------------
- * The filter option in cdr_adaptive_odbc now supports negating the argument,
- thus allowing records which do NOT match the specified filter.
- * Added ability to log CONGESTION calls to CDR
- CODECS
- --------------------------
- * Ability to define custom SILK formats in codecs.conf.
- * Addition of speex32 audio format with translation.
- * CELT codec pass-through support and ability to define
- custom CELT formats in codecs.conf.
- * Ability to read raw signed linear files with sample rates
- ranging from 8khz - 192khz. The new file extensions introduced
- are .sln12, .sln24, .sln32, .sln44, .sln48, .sln96, .sln192.
- * Due to protocol limitations, channel drivers other than SIP (eg. IAX2, MGCP,
- Skinny, H.323, etc) can still only support the following codecs:
- Audio: ulaw, alaw, slin, slin16, g719, g722, g723, g726, g726aal2, g729, gsm,
- siren7, siren14, speex, speex16, ilbc, lpc10, adpcm
- Video: h261, h263, h263p, h264, mpeg4
- Image: jpeg, png
- Text: red, t140
- ConfBridge
- --------------------------
- * New highly optimized and customizable ConfBridge application capable of
- mixing audio at sample rates ranging from 8khz-96khz.
- * CONFBRIDGE dialplan function capable of creating dynamic ConfBridge user
- and bridge profiles on a channel.
- * CONFBRIDGE_INFO dialplan function capable of retrieving information
- about a conference such as locked status and number of parties, admins,
- and marked users.
- * Addition of video_mode option in confbridge.conf for adding video support
- into a bridge profile.
- * Addition of the follow_talker video_mode in confbridge.conf. This video
- mode dynamically switches the video feed to always display the loudest talker
- supplying video in the conference.
- Dialplan Variables
- ------------------
- * Added ASTETCDIR, ASTMODDIR, ASTVARLIBDIR, ASTDBDIR, ASTKEYDIR, ASTDATADIR,
- ASTAGIDIR, ASTSPOOLDIR, ASTRUNDIR, ASTLOGDIR which hold the equivalent
- variables from asterisk.conf.
- Dialplan Functions
- ------------------
- * Addition of the JITTERBUFFER dialplan function. This function allows
- for jitterbuffering to occur on the read side of a channel. By using
- this function conference applications such as ConfBridge and MeetMe can
- have the rx streams jitterbuffered before conference mixing occurs.
- * Added DB_KEYS, which lists the next set of keys in the Asterisk database
- hierarchy.
- * Added STRREPLACE function. This function let's the user search a variable
- for a given string to replace with another string as many times as the
- user specifies or just throughout the whole string.
- * Added option to CHANNEL(pickupgroup) allow reading and setting the pickupgroup of channel.
- * Mark VALID_EXTEN() deprecated in favor of DIALPLAN_EXISTS()
- * Added extensions to chan_ooh323 in function CHANNEL()
- libpri channel driver (chan_dahdi) DAHDI changes
- --------------------------
- * Added moh_signaling option to specify what to do when the channel's bridged
- peer puts the ISDN channel on hold.
- * Added display_send and display_receive options to control how the display ie
- is handled. To send display text from the dialplan use the SendText()
- application when the option is enabled.
- * Added mcid_send option to allow sending a MCID request on a span.
- Calendaring
- --------------------------
- * Added setvar option to calendar.conf to allow setting channel variables on
- notification channels.
- * Added "calendar show types" CLI command to list registered calendar
- connectors.
- MixMonitor
- --------------------------
- * Added two new options, r and t with file name arguments to record
- single direction (unmixed) audio recording separate from the bidirectional
- (mixed) recording. The mixed file name argument is optional now as long
- as at least one recording option is used.
- FollowMe
- --------------------------
- * Added a new option, l, which will disable local call optimization for
- channels involved with the FollowMe thread. Use this option to improve
- compatability for a FollowMe call with certain dialplan apps, options, and
- functions.
- Meetme
- --------------------------
- * Added option "k" that will automatically close the conference when there's
- only one person left when a user exits the conference.
- CEL
- --------------------------
- * cel_pgsql now supports the 'extra' column for data added using the
- CELGenUserEvent() application.
- pbx_lua
- --------------------------
- * Support for defining hints has been added to pbx_lua. See the 'hints' table
- in the sample extensions.lua file for syntax details.
- * Applications that perform jumps in the dialplan such as Goto will now
- execute properly. When pbx_lua detects that the context, extension, or
- priority we are executing on has changed it will immediately return control
- to the asterisk PBX engine. Currently the engine cannot detect a Goto to
- the priority after the currently executing priority.
- * An autoservice is now started by default for pbx_lua channels. It can be
- stopped and restarted using the autoservice_stop() and autoservice_start()
- functions.
- res_fax
- --------------------------
- * The ReceiveFAXStatus and SendFAXStatus manager events have been consolidated
- into a FAXStatus event with an 'Operation' header that will be either
- 'send', 'receive', and 'gateway'.
- * T.38 gateway functionality has been added to res_fax (and res_fax_spandsp).
- Set FAXOPT(gateway)=yes to enable this functionality on a channel. This
- feature will handle converting a fax call between an audio T.30 fax terminal
- and an IFP T.38 fax terminal.
- SIP Changes
- -----------
- * Add T38 support for REJECTED state where T.38 Negotiation is explicitly rejected.
- * Add option encryption_taglen to set auth taglen only 32 and 80 are supported currently.
- * SIP now generates security events using the Security Events Framework for REGISTER and INVITE.
- Queue changes
- -------------
- * Added general option negative_penalty_invalid default off. when set
- members are seen as invalid/logged out when there penalty is negative.
- for realtime members when set remove from queue will set penalty to -1.
- * Added queue option autopausedelay when autopause is enabled it will be
- delayed for this number of seconds since last successful call if there
- was no prior call the agent will be autopaused immediately.
- * Added member option ignorebusy this when set and ringinuse is not
- will allow per member control of multiple calls as ringinuse does for
- the Queue.
- Applications
- ------------
- * Added 'v' option to MeetMe to play voicemail greetings when a user joins/leaves
- a MeetMe conference
- * Added 'k' option to MeetMe to automatically kill the conference when there's only
- one participant left (much like a normal call bridge)
- * Added extra argument to Originate to set timeout.
- Asterisk Database
- -----------------
- * The internal Asterisk database has been switched from Berkeley DB 1.86 to
- SQLite 3. An existing Berkeley astdb file can be converted with the astdb2sqlite3
- utility in the UTILS section of menuselect. If an existing astdb is found and no
- astdb.sqlite3 exists, astdb2sqlite3 will be compiled automatically. Asterisk will
- convert an existing astdb to the SQLite3 version automatically at runtime.
- Asterisk Modules
- ----------------
- * Modules marked as deprecated are no longer marked as building by default. Enabling
- these modules is still available via menuselect.
- IAX2 Changes
- ------------
- * authdebug is now disabled by default. To enable this functionaility again
- set authdebug = yes in iax.conf.
- RTP Changes
- -----------
- * The rtp.conf setting "strictrtp" is now enabled by default. In previous
- releases it was disabled.
- PBX Core
- --------
- * The PBX core previously made a call with a non-existing extension test for
- extension s@default and jump there if the extension existed.
- This was a bad default behaviour and violated the principle of least surprise.
- It has therefore been changed in this release. It may affect some
- applications and configurations that rely on this behaviour. Most channel
- drivers have avoided this for many releases by testing whether the extension
- called exists before starting the PBX and generating a local error.
- This behaviour still exists and works as before.
- Extension "s" is used when no extension is given in a channel driver,
- like immediate answer in DAHDI or calling to a domain with no user part
- in a SIP uri.
- ------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 1.6.2 to Asterisk 1.8 ----------------
- ------------------------------------------------------------------------------
- SIP Changes
- -----------
- * Due to potential username discovery vulnerabilities, the 'nat' setting in sip.conf
- now defaults to force_rport. It is very important that phones requiring nat=no be
- specifically set as such instead of relying on the default setting. If at all
- possible, all devices should have nat settings configured in the general section as
- opposed to configuring nat per-device.
- * Added preferred_codec_only option in sip.conf. This feature limits the joint
- codecs sent in response to an INVITE to the single most preferred codec.
- * Added SIP_CODEC_OUTBOUND dialplan variable which can be used to set the codec
- to be used for the outgoing call. It must be one of the codecs configured
- for the device.
- * Added tlsprivatekey option to sip.conf. This allows a separate .pem file
- to be used for holding a private key. If tlsprivatekey is not specified,
- tlscertfile is searched for both public and private key.
- * Added tlsclientmethod option to sip.conf. This allows the protocol for
- outbound client connections to be specified.
- * The sendrpid parameter has been expanded to include the options
- 'rpid' and 'pai'. Setting sendrpid to 'rpid' will cause Remote-Party-ID
- header to be sent (equivalent to setting sendrpid=yes) and setting
- sendrpid to 'pai' will cause P-Asserted-Identity header to be sent.
- * The 'ignoresdpversion' behavior has been made automatic when the SDP received
- is in response to a T.38 re-INVITE that Asterisk initiated. In this situation,
- since the call will fail if Asterisk does not process the incoming SDP, Asterisk
- will accept the SDP even if the SDP version number is not properly incremented,
- but will generate a warning in the log indicating that the SIP peer that sent
- the SDP should have the 'ignoresdpversion' option set.
- * The 'nat' option has now been been changed to have yes, no, force_rport, and
- comedia as valid values. Setting it to yes forces RFC 3581 behavior and enables
- symmetric RTP support. Setting it to no only enables RFC 3581 behavior if the
- remote side requests it and disables symmetric RTP support. Setting it to
- force_rport forces RFC 3581 behavior and disables symmetric RTP support.
- Setting it to comedia enables RFC 3581 behavior if the remote side requests it
- and enables symmetric RTP support.
- * Slave SIP channels now set HASH(SIP_CAUSE,<slave-channel-name>) on each
- response. This permits the master channel to know how each channel dialled
- in a multi-channel setup resolved in an individual way. This carries a
- performance penalty and can be disabled in sip.conf using the
- 'storesipcause' option.
- * Added 'externtcpport' and 'externtlsport' options to allow custom port
- configuration for the externip and externhost options when tcp or tls is used.
- * Added support for message body (stored in content variable) to SIP NOTIFY message
- accessible via AMI and CLI.
- * Added 'media_address' configuration option which can be used to explicitly specify
- the IP address to use in the SDP for media (audio, video, and text) streams.
- * Added 'unsolicited_mailbox' configuration option which specifies the virtual mailbox
- that the new/old count should be stored on if an unsolicited MWI NOTIFY message is
- received.
- * Added 'use_q850_reason' configuration option for generating and parsing
- if available Reason: Q.850;cause=<cause code> header. It is implemented
- in some gateways for better passing PRI/SS7 cause codes via SIP.
- * When dialing SIP peers, a new component may be added to the end of the dialstring
- to indicate that a specific remote IP address or host should be used when dialing
- the particular peer. The dialstring format is SIP/peer/exten/host_or_IP.
- * SRTP SDES support for encrypting calls to/from Asterisk over SIP. The
- ability to selectively force bridged channels to also be encrypted is also
- implemented. Branching in the dialplan can be done based on whether or not
- a channel has secure media and/or signaling.
- * Added directmediapermit/directmediadeny to limit which peers can send direct media
- to each other
- * Added the 'snom_aoc_enabled' option to turn on support for sending Advice of
- Charge messages to snom phones.
- * Added support for G.719 media streams.
- * Added support for 16khz signed linear media streams.
- * SIP is now able to bind to and communicate with IPv6 addresses. In addition,
- RTP has been outfitted with the same abilities.
- * Added support for setting the Max-Forwards: header in SIP requests. Setting is
- available in device configurations as well as in the dial plan.
- * Addition of the 'subscribe_network_change' option for turning on and off
- res_stun_monitor module support in chan_sip.
- * Addition of the 'auth_options_requests' option for turning on and off
- authentication for OPTIONS requests in chan_sip.
- Configuration files
- -------------------
- * Add #tryinclude statement for config files. This provides the same
- functionality as the #include statement however an asterisk module will
- still load if the filename does not exist. Using the #include statement
- Asterisk will not allow the module to load.
- IAX2 Changes
- -----------
- * Added rtsavesysname option into iax.conf to allow the systname to be saved
- on realtime updates.
- * Added the ability for chan_iax2 to inform the dialplan whether or not
- encryption is being used. This interoperates with the SIP SRTP implementation
- so that a secure SIP call can be bridged to a secure IAX call when the
- dialplan requires bridged channels to be "secure".
- * Addition of the 'subscribe_network_change' option for turning on and off
- res_stun_monitor module support in chan_iax.
- MGCP Changes
- ------------
- * Added ability to preset channel variables on indicated lines with the setvar
- configuration option. Also, clearvars=all resets the list of variables back
- to none.
- * PacketCable NCS 1.0 support has been added for Docsis/Eurodocsis Networks.
- See configs/res_pktccops.conf for more information.
- XMPP Google Talk/Jingle changes
- -------------------------------
- * Added the externip option to gtalk.conf.
- * Added the stunaddr option to gtalk.conf which allows for the automatic
- retrieval of the external ip from a stun server.
- Applications
- ------------
- * Added 'p' option to PickupChan() to allow for picking up channel by the first
- match to a partial channel name.
- * Added .m3u support for Mp3Player application.
- * Added progress option to the app_dial D() option. When progress DTMF is
- present, those values are sent immediately upon receiving a PROGRESS message
- regardless if the call has been answered or not.
- * Added functionality to the app_dial F() option to continue with execution
- at the current location when no parameters are provided.
- * Added the 'a' option to app_dial to answer the calling channel before any
- announcements or macros are executed.
- * Modified app_dial to set answertime when the called channel answers even if
- the called channel hangs up during playback of an announcement.
- * Modified app_dial 'r' option to support an additional parameter to play an
- indication tone from indications.conf
- * Added c() option to app_chanspy. This option allows custom DTMF to be set
- to cycle through the next available channel. By default this is still '*'.
- * Added x() option to app_chanspy. This option allows DTMF to be set to
- exit the application.
- * The Voicemail application has been improved to automatically ignore messages
- that only contain silence.
- * If you set maxmsg to 0 in voicemail.conf, Voicemail will consider the
- associated mailbox(es) to be greetings-only.
- * The ChanSpy application now has the 'S' option, which makes the application
- automatically exit once it hits a point where no more channels are available
- to spy on.
- * The ChanSpy application also now has the 'E' option, which spies on a single
- channel and exits when that channel hangs up.
- * The MeetMe application now turns on the DENOISE() function by default, for
- each participant. In our tests, this has significantly decreased background
- noise (especially noisy data centers).
- * Voicemail now permits storage of secrets in a separate file, located in the
- spool directory of each individual user. The control for this is located in
- the "passwordlocation" option in voicemail.conf. Please see the sample
- configuration for more information.
- * The ChanIsAvail application now exposes the returned cause code using a separate
- variable, AVAILCAUSECODE, instead of overwriting the device state in AVAILSTATUS.
- * Added 'd' option to app_followme. This option disables the "Please hold"
- announcement.
- * Added 'y' option to app_record. This option enables a mode where any DTMF digit
- received will terminate recording.
- * Voicemail now supports per mailbox settings for folders when using IMAP storage.
- Previously the folder could only be set per context, but has now been extended
- using the imapfolder option.
- * Voicemail now supports per mailbox settings for nextaftercmd and minsecs.
- * Voicemail now allows the pager date format to be specified separately from the
- email date format.
- * New applications JabberJoin, JabberLeave, and JabberSendGroup have been added
- to allow joining, leaving, and sending text to group chats.
- * MeetMe has a new option 'G' to play an announcement before joining a conference.
- * Page has a new option 'A(x)' which will playback an announcement simultaneously
- to all paged phones (and optionally excluding the caller's one using the new
- option 'n') before the call is bridged.
- * The 'f' option to Dial has been augmented to take an optional argument. If no
- argument is provided, the 'f' option works as it always has. If an argument is
- provided, then the connected party information of all outgoing channels created
- during the Dial will be set to the argument passed to the 'f' option.
- * Dial now inherits the GOSUB_RETVAL from the peer, when the U() option runs a
- Gosub on the peer.
- * The OSP lookup application adds in/outbound network ID, optional security,
- number portability, QoS reporting, destination IP port, custom info and service
- type features.
- * Added new application VMSayName that will play the recorded name of the voicemail
- user if it exists, otherwise will play the mailbox number.
- * Added custom device states to ConfBridge bridges. Use 'confbridge:<name>' to
- retrieve state for a particular bridge, where <name> is the conference name
- * app_directory now allows exiting at any time using the operator or pound key.
- * Voicemail now supports setting a locale per-mailbox.
- * Two new applications are provided for declining counting phrases in multiple
- languages. See the application notes for SayCountedNoun and SayCountedAdj for
- more information.
- * Voicemail now runs the externnotify script when pollmailboxes is activated and
- notices a change.
- * Voicemail now includes rdnis within msgXXXX.txt file.
- * ExternalIVR now supports IPv6 addresses.
- * Added 'D' command to ExternalIVR. Details are available on the Asterisk wiki
- at https://wiki.asterisk.org/wiki/x/oQBB
- * ParkedCall and Park can now specify the parking lot to use.
- Dialplan Functions
- ------------------
- * SRVQUERY and SRVRESULT functions added. This can be used to query and iterate
- over SRV records associated with a specific service. From the CLI, type
- 'core show function SRVQUERY' and 'core show function SRVRESULT' for more
- details on how these may be used.
- * PITCH_SHIFT dialplan function added. This function can be used to modify the
- pitch of a channel's tx and rx audio streams.
- * Added new dialplan functions CONNECTEDLINE and REDIRECTING which permits
- setting various connected line and redirecting party information.
- * CALLERID and CONNECTEDLINE dialplan functions have been extended to
- support ISDN subaddressing.
- * The CHANNEL() function now supports the "name" and "checkhangup" options.
- * For DAHDI channels, the CHANNEL() dialplan function now allows
- the dialplan to request changes in the configuration of the active
- echo canceller on the channel (if any), for the current call only.
- The syntax is:
- exten => s,n,Set(CHANNEL(echocan_mode)=off)
- The possible values are:
- on - normal mode (the echo canceller is actually reinitialized)
- off - disabled
- fax - FAX/data mode (NLP disabled if possible, otherwise completely
- disabled)
- voice - voice mode (returns from FAX mode, reverting the changes that
- were made when FAX mode was requested)
- * Added new dialplan function MASTER_CHANNEL(), which permits retrieving
- and setting variables on the channel which created the current channel.
- Administrators should take care to avoid naming conflicts, when multiple
- channels are dialled at once, especially when used with the Local channel
- construct (which all could set variables on the master channel). Usage
- of the HASH() dialplan function, with the key set to the name of the slave
- channel, is one approach that will avoid conflicts.
- * Added new dialplan function MUTEAUDIO() for muting inbound and/or outbound
- audio in a channel.
- * func_odbc now allows multiple row results to be retrieved without using
- mode=multirow. If rowlimit is set, then additional rows may be retrieved
- from the same query by using the name of the function which retrieved the
- first row as an argument to ODBC_FETCH().
- * Added JABBER_RECEIVE, which permits receiving XMPP messages from the
- dialplan. This function returns the content of the received message.
- * Added REPLACE, which searches a given variable name for a set of characters,
- then either replaces them with a single character or deletes them.
- * Added PASSTHRU, which literally passes the same argument back as its return
- value. The intent is to be able to use a literal string argument to
- functions that currently require a variable name as an argument.
- * HASH-associated variables now can be inherited across channel creation, by
- prefixing the name of the hash at assignment with the appropriate number of
- underscores, just like variables.
- * GROUP_MATCH_COUNT has been improved to allow regex matching on category
- * CHANNEL(secure_bridge_signaling) and CHANNEL(secure_bridge_media) to set/get
- whether or not channels that are bridged to the current channel will be
- required to have secure signaling and/or media.
- * CHANNEL(secure_signaling) and CHANNEL(secure_media) to get whether or not
- the current channel has secure signaling and/or media.
- * For DAHDI/ISDN channels, the CHANNEL() dialplan function now supports the
- "no_media_path" option.
- Returns "0" if there is a B channel associated with the call.
- Returns "1" if no B channel is associated with the call. The call is either
- on hold or is a call waiting call.
- * Added option to dialplan function CDR(), the 'f' option
- allows for high resolution times for billsec and duration fields.
- * FILE() now supports line-mode and writing.
- * Added FIELDNUM(), which returns the 1-based offset of a field in a list.
- * FRAME_TRACE(), for tracking internal ast_frames on a channel.
- Dialplan Variables
- ------------------
- * Added DYNAMIC_FEATURENAME which holds the last triggered dynamic feature.
- * Added DYNAMIC_PEERNAME which holds the unique channel name on the other side
- and is set when a dynamic feature is triggered.
- * Added PARKINGLOT which can be used with parkeddynamic feature.conf option
- to dynamically create a new parking lot matching the value this varible is
- set to.
- * Added PARKINGDYNAMIC which represents the template parkinglot defined in
- features.conf that should be the base for dynamic parkinglots.
- * Added PARKINGDYNCONTEXT which tells what context a newly created dynamic
- parkinglot should have.
- * Added PARKINGDYNEXTEN which tells what parking exten a newly created dynamic
- parkinglot should have.
- * Added PARKINGDYNPOS which holds what parking positions a dynamic parkinglot
- should have.
- Queue changes
- -------------
- * Added "ready" option to QUEUE_MEMBER counting to count free agents whose wrap-up
- timeout has expired.
- * Added 'R' option to app_queue. This option stops moh and indicates ringing
- to the caller when an Agent's phone is ringing. This can be used to indicate
- to the caller that their call is about to be picked up, which is nice when
- one has been on hold for an extened period of time.
- * A new config option, penaltymemberslimit, has been added to queues.conf.
- When set this option will disregard penalty settings when a queue has too
- few members.
- * A new option, 'I' has been added to both app_queue and app_dial.
- By setting this option, Asterisk will not update the caller with
- connected line changes or redirecting party changes when they occur.
- * A 'relative-periodic-announce' option has been added to queues.conf. When
- enabled, this option will cause periodic announce times to be calculated
- from the end of announcements rather than from the beginning.
- * The autopause option in queues.conf can be passed a new value, "all." The
- result is that if a member becomes auto-paused, he will be paused in all
- queues for which he is a member, not just the queue that failed to reach
- the member.
- * Added dialplan function QUEUE_EXISTS to check if a queue exists
- * The queue logger now allows events to optionally propagate to a file,
- even when realtime logging is turned on. Additionally, realtime logging
- supports sending the event arguments to 5 individual fields, although it
- will fallback to the previous data definition, if the new table layout is
- not found.
- mISDN channel driver (chan_misdn) changes
- ----------------------------------------
- * Added display_connected parameter to misdn.conf to put a display string
- in the CONNECT message containing the connected name and/or number if
- the presentation setting permits it.
- * Added display_setup parameter to misdn.conf to put a display string
- in the SETUP message containing the caller name and/or number if the
- presentation setting permits it.
- * Made misdn.conf parameters localdialplan and cpndialplan take a -1 to
- indicate the dialplan settings are to be obtained from the asterisk
- channel.
- * Made misdn.conf parameter callerid accept the "name" <number> format
- used by the rest of the system.
- * Made use the nationalprefix and internationalprefix misdn.conf
- parameters to prefix any received number from the ISDN link if that
- number has the corresponding Type-Of-Number. NOTE: This includes
- comparing the incoming call's dialed number against the MSN list.
- * Added the following new parameters: unknownprefix, netspecificprefix,
- subscriberprefix, and abbreviatedprefix in misdn.conf to prefix any
- received number from the ISDN link if that number has the corresponding
- Type-Of-Number.
- * Added new dialplan application misdn_command which permits controlling
- the CCBS/CCNR functionality.
- * Added new dialplan function mISDN_CC which permits retrieval of various
- values from an active call completion record.
- * For PTP, you should manually send the COLR of the redirected-to party
- for an incomming redirected call if the incoming call could experience
- further redirects. Just set the REDIRECTING(to-num,i) = ${EXTEN} and
- set the REDIRECTING(to-pres) to the COLR. A call has been redirected
- if the REDIRECTING(from-num) is not empty.
- * For outgoing PTP redirected calls, you now need to use the inhibit(i)
- option on all of the REDIRECTING statements before dialing the
- redirected-to party. You still have to set the REDIRECTING(to-xxx,i)
- and the REDIRECTING(from-xxx,i) values. The PTP call will update the
- redirecting-to presentation (COLR) when it becomes available.
- * Added outgoing_colp parameter to misdn.conf to filter outgoing COLP
- information.
- thirdparty mISDN enhancements
- -----------------------------
- mISDN has been modified by Digium, Inc. to greatly expand facility message
- support to allow:
- * Enhanced COLP support for call diversion and transfer.
- * CCBS/CCNR support.
- The latest modified mISDN v1.1.x based version is available at:
- http://svn.digium.com/svn/thirdparty/mISDN/trunk
- http://svn.digium.com/svn/thirdparty/mISDNuser/trunk
- Tagged versions of the modified mISDN code are available under:
- http://svn.digium.com/svn/thirdparty/mISDN/tags
- http://svn.digium.com/svn/thirdparty/mISDNuser/tags
- libpri channel driver (chan_dahdi) DAHDI changes
- -------------------------------------------
- * The channel variable PRIREDIRECTREASON is now just a status variable
- and it is also deprecated. Use the REDIRECTING(reason) dialplan function
- to read and alter the reason.
- * For Q.SIG and ETSI PRI/BRI-PTP, you should manually send the COLR of the
- redirected-to party for an incomming redirected call if the incoming call
- could experience further redirects. Just set the
- REDIRECTING(to-num,i) = CALLERID(dnid) and set the REDIRECTING(to-pres)
- to the COLR. A call has been redirected if the REDIRECTING(count) is not
- zero.
- * For outgoing Q.SIG and ETSI PRI/BRI-PTP redirected calls, you need to
- use the inhibit(i) option on all of the REDIRECTING statements before
- dialing the redirected-to party. You still have to set the
- REDIRECTING(to-xxx,i) and the REDIRECTING(from-xxx,i) values. The call
- will update the redirecting-to presentation (COLR) when it becomes available.
- * Added the ability to ignore calls that are not in a Multiple Subscriber
- Number (MSN) list for PTMP CPE interfaces.
- * Added dynamic range compression support for dahdi channels. It is
- configured via the rxdrc and txdrc parameters in chan_dahdi.conf.
- * Added support for ISDN calling and called subaddress with partial support
- for connected line subaddress.
- * Added support for BRI PTMP NT mode. (Requires latest LibPRI.)
- * Added handling of received HOLD/RETRIEVE messages and the optional ability
- to transfer a held call on disconnect similar to an analog phone.
- * Added CallRerouting/CallDeflection support for Q.SIG, ETSI PTP, ETSI PTMP.
- Will reroute/deflect an outgoing call when receive the message.
- Can use the DAHDISendCallreroutingFacility to send the message for the
- supported switches.
- * Added standard location to add options to chan_dahdi dialing:
- Dial(DAHDI/g1[/extension[/options]])
- Current options:
- K(<keypad_digits>)
- R Reverse charging indication
- * Added Reverse Charging Indication (Collect calls) send/receive option.
- Send reverse charging in SETUP message with the chan_dahdi R dialing option.
- Dial(DAHDI/g1/extension/R)
- Access received reverse charge in SETUP message by: ${CHANNEL(reversecharge)}
- (requires latest LibPRI)
- * Added ability to send/receive keypad digits in the SETUP message.
- Send keypad digits in SETUP message with the chan_dahdi K(<keypad_digits>)
- dialing option. Dial(DAHDI/g1/[extension]/K(<keypad_digits>))
- Access any received keypad digits in SETUP message by: ${CHANNEL(keypad_digits)}
- (requires latest LibPRI)
- * Added ability to send and receive ETSI Explicit Call Transfer (ECT) messages
- to eliminate tromboned calls. A tromboned call goes out an interface and comes
- back into the same interface. Tromboned calls happen because of call routing,
- call deflection, call forwarding, and call transfer.
- * Added the ability to send and receive ETSI Advice-Of-Charge messages.
- * Added the ability to support call waiting calls. (The SETUP has no B channel
- assigned.)
- * Added Malicious Call ID (MCID) event to the AMI call event class.
- * Added Message Waiting Indication (MWI) support for ISDN PTMP endpoints (phones).
- Asterisk Manager Interface
- --------------------------
- * The Hangup action now accepts a Cause header which may be used to
- set the channel's hangup cause.
- * sslprivatekey option added to manager.conf and http.conf. Adds the ability
- to specify a separate .pem file to hold a private key. By default sslcert
- is used to hold both the public and private key.
- * Options in manager.conf and http.conf with the 'ssl' prefix have been replaced
- for options containing the 'tls' prefix. For example, 'sslenable' is now
- 'tlsenable'. This has been done in effort to keep ssl and tls options consistent
- across all .conf files. All affected sample.conf files have been modified to
- reflect this change. Previous options such as 'sslenable' still work,
- but options with the 'tls' prefix are preferred.
- * Added a MuteAudio AMI action for muting inbound and/or outbound audio
- in a channel. (res_mutestream.so)
- * The configuration file manager.conf now supports a channelvars option, which
- specifies a list of channel variables to include in each channel-oriented
- event.
- * The redirect command now has new parameters ExtraContext, ExtraExtension,
- and ExtraPriority to allow redirecting the second channel to a different
- location than the first.
- * Added new event "JabberStatus" in the Jabber module to monitor buddies
- status.
- * Added a "MixMonitorMute" AMI action for muting inbound and/or outbound audio
- in a MixMonitor recording.
- * The 'iax2 show peers' output is now similar to the expected output of
- 'sip show peers'.
- * Added Advice-Of-Charge events (AOC-S, AOC-D, and AOC-E) in the new
- aoc event class.
- * Added Advice-Of-Charge manager action, AOCMessage, for generating AOC-D and
- AOC-E messages on a channel.
- * A DBGetComplete event now follows a DBGetResponse, to make the DBGet action
- conform more closely to similar events.
- * Added a new eventfilter option per user to allow whitelisting and blacklisting
- of events.
- * Added optional parkinglot variable for park command.
- * Added ConnectedLineNum and ConnectedLineName headers to AMI events/responses
- if CallerIDNum and CallerIDName headers are also present.
- Channel Event Logging
- ---------------------
- * A new interface, CEL, is introduced here. CEL logs single events, much like
- the AMI, but it differs from the AMI in that it logs to db backends much
- like CDR does; is based on the event subsystem introduced by Russell, and
- can share in all its benefits; allows multiple backends to operate like CDR;
- is specialized to event data that would be of concern to billing sytems,
- like CDR. Backends for logging and accounting calls have been produced,
- but a new CDR backend is still in development.
- CDR
- ---
- * 'linkedid' and 'peeraccount' are new CDR fields available to CDR aficionados.
- linkedid is based on uniqueID, but spreads to other channels as transfers, dials,
- etc are performed. Thus the pieces of CDR can be grouped into multilegged sets.
- * Multiple files and formats can now be specified in cdr_custom.conf.
- * cdr_syslog has been added which allows CDRs to be written directly to syslog.
- See configs/cdr_syslog.conf.sample for more information.
- * A 'sequence' field has been added to CDRs which can be combined with
- linkedid or uniqueid to uniquely identify a CDR.
- * Handling of billsec and duration field has changed. If your table definition
- specifies those fields as float,double or similar they will now be logged with
- microsecond accuracy instead of a whole integer.
- Calendaring for Asterisk
- ------------------------
- * A new set of modules were added supporing calendar integration with Asterisk.
- Dialplan functions for reading from and writing to calendars are included,
- as well as the ability to execute dialplan logic upon calendar event notifications.
- iCalendar, CalDAV, and Exchange Server calendars (via res_calendar_exchange for
- Exchange Server 2003 with no write or attendee support, and res_calendar_ews for
- Exchange Server 2007+ with full write and attendee support) are supported (Exchange
- 2003 support does not support forms-based authentication).
- Call Completion Supplementary Services for Asterisk
- ---------------------------------------------------
- * Call completion support has been added for SIP, DAHDI/ISDN, and DAHDI/analog.
- DAHDI/ISDN supports call completion for the following switch types:
- EuroIsdn(ETSI) for PTP and PTMP modes, and Qsig.
- See https://wiki.asterisk.org/wiki/x/2ABQ for details.
- Multicast RTP Support
- ---------------------
- * A new RTP engine and channel driver have been added which supports Multicast RTP.
- The channel driver can be used with the Page application to perform multicast RTP
- paging. The dial string format is: MulticastRTP/<type>/<destination>/<control address>
- Type can be either basic or linksys.
- Destination is the IP address and port for the RTP packets.
- Control address is specific to the linksys type and is used for sending the control
- packets unique to them.
- Security Events Framework
- -------------------------
- * Asterisk has a new C API for reporting security events. The module res_security_log
- sends these events to the "security" logger level. Currently, AMI is the only
- Asterisk component that reports security events. However, SIP support will be
- coming soon. For more information on the security events framework, see the
- "Asterisk Security Framework" section of the Asterisk wiki at
- https://wiki.asterisk.org/wiki/x/wgBQ
- * SIP support was added in Asterisk 10
- * This API now supports IPv6 addresses
- Fax
- ---
- * A technology independent fax frontend (res_fax) has been added to Asterisk.
- * A spandsp based fax backend (res_fax_spandsp) has been added.
- * The app_fax module has been deprecated in favor of the res_fax module and
- the new res_fax_spandsp backend.
- * The SendFAX and ReceiveFAX applications now send their log messages to a
- 'fax' logger level, instead of to the generic logger levels. To see these
- messages, the system's logger.conf file will need to direct the 'fax' logger
- level to one or more destinations; the logger.conf.sample file includes an
- example of how to do this. Note that if the 'fax' logger level is *not*
- directed to at least one destination, log messages generated by these
- applications will be lost, and that if the 'fax' logger level is directed to
- the console, the 'core set verbose' and 'core set debug' CLI commands will
- have no effect on whether the messages appear on the console or not.
- Miscellaneous
- -------------
- * The transmit_silence_during_record option in asterisk.conf.sample has been removed.
- Now, in order to enable transmitting silence during record the transmit_silence
- option should be used. transmit_silence_during_record remains a valid option, but
- defaults to the behavior of the transmit_silence option.
- * Addition of the Unit Test Framework API for managing registration and execution
- of unit tests with the purpose of verifying the operation of C functions.
- * SendText is now implemented in chan_gtalk and chan_jingle. It will simply send
- XMPP text messages to the remote JID.
- * Modules.conf has a new option - "require" - that marks a module as critical for
- the execution of Asterisk.
- If one of the required modules fail to load, Asterisk will exit with a return
- code set to 2.
- * An 'X' option has been added to the asterisk application which enables #exec support.
- This allows #exec to be used in asterisk.conf.
- * jabber.conf supports a new option auth_policy that toggles auto user registration.
- * A new lockconfdir option has been added to asterisk.conf to protect the
- configuration directory (/etc/asterisk by default) during reloads.
- * The parkeddynamic option has been added to features.conf to enable the creation
- of dynamic parkinglots.
- * chan_dahdi now supports reporting alarms over AMI either by channel or span via
- the reportalarms config option.
- * chan_dahdi supports dialing configuring and dialing by device file name.
- DAHDI/span-name!local!1 will use /dev/dahdi/span-name/local/1 . Likewise
- it may appear in chan_dahdi.conf as 'channel => span-name!local!1'.
- * A new options for chan_dahdi.conf: 'ignore_failed_channels'. Boolean.
- False by default. If set, chan_dahdi will ignore failed 'channel' entries.
- Handy for the above name-based syntax as it does not depend on
- initialization order.
- * The Realtime dialplan switch now caches entries for 1 second. This provides a
- significant increase in performance (about 3X) for installations using this switchtype.
- * Distributed devicestate now supports the use of the XMPP protocol, in addition to
- AIS. For more information, please see the Distributed Device State section of the
- Asterisk wiki at https://wiki.asterisk.org/wiki/x/jw4iAQ
- * The addition of G.719 pass-through support.
- * Added support for 16khz Speex audio. This can be enabled by using 'allow=speex16'
- during device configuration.
- * The UNISTIM channel driver (chan_unistim) has been updated to support devices that
- have less than 3 lines on the LCD.
- * Realtime now supports database failover. See the sample extconfig.conf for details.
- * The addition of improved translation path building for wideband codecs. Sample
- rate changes during translation are now avoided unless absolutely necessary.
- * The addition of the res_stun_monitor module for monitoring and reacting to network
- changes while behind a NAT.
- * DTMF: Normal and Reverse Twist acceptance values can be set in dsp.conf.
- DTMF Valid/Invalid number of hits/misses can be set in dsp.conf.
- These allow support for any Administration. Default is AT&T values.
- CLI Changes
- -----------
- * The 'core set debug' and 'core set verbose' commands, in previous versions, could
- optionally accept a filename, to apply the setting only to the code generated from
- that source file when Asterisk was built. However, there are some modules in Asterisk
- that are composed of multiple source files, so this did not result in the behavior
- that users expected. In this version, 'core set debug' and 'core set verbose'
- can optionally accept *module* names instead (with or without the .so extension),
- which applies the setting to the entire module specified, regardless of which source
- files it was built from.
- * New 'manager show settings' command showing the current settings loaded from
- manager.conf.
- * Added 'all' keyword to the CLI command "channel request hangup" so that you can send
- the channel hangup request to all channels.
- * Added a "core reload" CLI command that executes a global reload of Asterisk.
- ------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 1.6.1 to Asterisk 1.6.2 -------------
- ------------------------------------------------------------------------------
- SIP Changes
- -----------
- * Added support for SUBSCRIBE/NOTIFY with dialog-info based call pickups.
- Snom phones use this for call pickup of extensions that the phone is
- subscribed to.
- * Added support for setting the domain in the URI for caller of an
- outbound call by using the SIPFROMDOMAIN channel variable.
- * Added a new configuration option "remotesecret" for authentication to
- remote services. For backwards compatibility, "secret" still has the
- same function as before, but now you can configure both a remote secret and a
- local secret for mutual authentication.
- * If the channel variable ATTENDED_TRANSFER_COMPLETE_SOUND is set,
- the sound will be played to the target of an attended transfer
- * Added two new configuration options, "qualifygap" and "qualifypeers", which allow
- finer control over how many peers Asterisk will qualify and the gap between them
- when all peers need to be qualified at the same time.
- * Added a new 'ignoresdpversion' option to sip.conf. When this is enabled
- (either globally or for a specific peer), chan_sip will treat any SDP data
- it receives as new data and update the media stream accordingly. By
- default, Asterisk will only modify the media stream if the SDP session
- version received is different from the current SDP session version. This
- option is required to interoperate with devices that have non-standard SDP
- session version implementations (observed with Microsoft OCS). This option
- is disabled by default.
- * The parsing of register => lines in sip.conf has been modified to allow a port
- to be present in the "user" portion. Please see the sip.conf.sample file for more
- information
- * Added support for subscribing to MWI on a remote server and making the status available
- as a mailbox. Please see the sip.conf.sample file for more information.
- * Added a function to remove SIP headers added in the dialplan before the
- first INVITE is generated - SIPRemoveHeader()
- * Channel variables set with setvar= in a device configuration is now
- set both for inbound and outbound calls.
- * Added support for ITU G.722.1 and G.722.1C (Siren7 and Siren14) media streams.
- IAX2 changes
- ------------
- * Added immediate option to iax.conf
- * Added forceencryption option to iax.conf
- * Added Encryption and Trunk status to manager command "iaxpeers"
- Skinny Changes
- --------------
- * The configuration file now holds separate sections for devices and lines.
- Please have a look at configs/skinny.conf.sample and change your skinny.conf
- accordingly.
- DAHDI Changes
- -------------
- * chan_dahdi now supports MFC/R2 signaling when Asterisk is compiled with
- support for LibOpenR2. http://www.libopenr2.org/
- * The UK option waitfordialtone has been added for use with BT analog
- lines.
- * Added a 'faxbuffers' configuration option to chan_dahdi.conf. This option
- is used in conjunction with the 'faxdetect' configuration option. When
- 'faxbuffers' is used and fax tones are detected, the channel will dynamically
- switch to the configured faxbuffers policy. For example, to use 6 buffers
- and a 'full' buffer policy for a fax transmission, add:
- faxbuffers=>6,full
- The faxbuffers configuration will be in affect until the call is torn down.
- * Added service message support for 4ESS/5ESS switches.
- Dialplan Functions
- ------------------
- * For DAHDI channels, the CHANNEL() dialplan function now
- supports changing the channel's buffer policy (for the current
- call only), using this syntax:
- exten => s,n,Set(CHANNEL(buffers)=6,full)
- This would change the channel to the 'full' buffer policy and
- 6 (six) buffers. Possible options for this setting are the same
- as those in chan_dahdi.conf.
- * Added a new dialplan function, CURLOPT, which permits setting various
- options that may be useful with the CURL dialplan function, such as
- cookies, proxies, connection timeouts, passwords, etc.
- * Permit the syntax and synopsis fields of the corresponding dialplan
- functions to be individually set from func_odbc.conf.
- * Added debugging CLI functions to func_odbc, 'odbc read' and 'odbc write'.
- * func_odbc now may specify an insert query to execute, when the write query
- affects 0 rows (usually indicating that no such row exists).
- * Added a new dialplan function, LISTFILTER, which permits removing elements
- from a set list, by name. Uses the same general syntax as the existing CUT
- and FIELDQTY dialplan functions, which also manage lists.
- * Added REALTIME_FIELD and REALTIME_HASH, which should aid users in better
- obtaining realtime data from the dialplan.
- * Added LOCAL_PEEK, which allows access to variables in any stack frame within
- a subroutine when using the GoSub() and Return() applications.
- * Added AUDIOHOOK_INHERIT. For information on its use, please see the output
- of "core show function AUDIOHOOK_INHERIT" from the CLI
- * Added AES_ENCRYPT. For information on its use, please see the output
- of "core show function AES_ENCRYPT" from the CLI
- * Added AES_DECRYPT. For information on its use, please see the output
- of "core show function AES_DECRYPT" from the CLI
- * func_odbc now supports database transactions across multiple queries.
- Applications
- ------------
- * Scheduled meetme conferences may now have their end times extended by
- using MeetMeAdmin.
- * app_authenticate now gives the ability to select a prompt other than
- the default.
- * app_directory now pays attention to the searchcontexts setting in
- voicemail.conf and will look through all contexts, if no context is
- specified in the initial argument.
- * A new application, Originate, has been introduced, that allows asynchronous
- call origination from the dialplan.
- * Voicemail now permits setting the emailsubject and emailbody per mailbox,
- in addition to the setting in the "general" context.
- * Added ConfBridge dialplan application which does conference bridges without
- DAHDI. For information on its use, please see the output of
- "core show application ConfBridge" from the CLI.
- Miscellaneous
- -------------
- * The Asterisk CLI has a new command, "channel redirect", which is similar in
- operation to the AMI Redirect action.
- * extensions.conf now allows you to use keyword "same" to define an extension
- without actually specifying an extension. It uses exactly the same pattern
- as previously used on the last "exten" line. For example:
- exten => 123,1,NoOp(something)
- same => n,SomethingElse()
- * musiconhold.conf classes of type 'files' can now use relative directory paths,
- which are interpreted as relative to the astvarlibdir setting in asterisk.conf.
- * All deprecated CLI commands are removed from the sourcecode. They are now handled
- by the new clialiases module. See cli_aliases.conf.sample file.
- * Times within timespecs are now accurate down to the minute. This is a change
- from historical Asterisk, which only provided timespecs rounded to the nearest
- even (read: evenly divisible by 2) minute mark.
- * The realtime switch now supports an option flag, 'p', which disables searches for
- pattern matches.
- * In addition to a time range and date range, timespecs now accept a 5th optional
- argument, timezone. This allows you to perform time checks on alternate
- timezones, especially if those daylight savings time ranges vary from your
- machine's native timezone. See GotoIfTime, ExecIfTime, IFTIME(), and timed
- includes.
- * The contrib/scripts/ directory now has a script called sip_nat_settings that will
- give you the correct output for an asterisk box behind nat. It will give you the
- externhost and localnet settings.
- * The Asterisk core now supports ITU G.722.1 and G.722.1C media streams, and
- can connect calls in passthrough mode, as well as record and play back files.
- * Successful and unsuccessful call pickup can now be alerted through sounds, by
- using pickupsound and pickupfailsound in features.conf.
- * ASTVARRUNDIR is now set to $(localstatedir)/run/asterisk by default.
- This means the asterisk pid file will now be in /var/run/asterisk/asterisk.pid on LINUX
- instead of the /var/run/asterisk.pid where it used to be. This will make
- installs as non-root easier to manage.
- CDR
- ---
- * The cdr.conf file must exist and be correctly programmed in order for CDR records to
- be written; they will no longer be explicitly written.
- Asterisk Manager Interface
- --------------------------
- * When using the AMI over HTTP, you can now include a 'SuppressEvents' header (with
- a non-empty value) in your request. If you do this, any pending AMI events will
- *not* be included in the response to your request as they would normally, but
- will be left in the event queue for the next request you make to retrieve. For
- some applications, this will allow you to guarantee that you will only see
- events in responses to 'WaitEvent' actions, and can better know when to expect them.
- To know whether the Asterisk server supports this header or not, your client can
- inspect the first response back from the server to see if it includes this header:
- Pragma: SuppressEvents
- If this is included, the server supports event suppression.
- * Added 4 new Actions to list skinny device(s) and line(s)
- SKINNYdevices
- SKINNYshowdevice
- SKINNYlines
- SKINNYshowline
- LDAP Schema File Additions
- --------------------------
- * Added AsteriskDialplan, AsteriskAccount and AsteriskMailbox objectClasses
- to allow standalone dialplan, account and mailbox entries (STRUCTURAL)
- * Added new Fields:
- - AstAccountLanguage, AstAccountTransport, AstAccountPromiscRedir,
- - AstAccountAccountCode, AstAccountSetVar, AstAccountAllowOverlap,
- - AstAccountVideoSupport, AstAccountIgnoreSDPVersion
- * Removed redundant IPaddr (there's already IPAddress)
- - Gives more configuration Flags for SIP-Users available (tested)
- - Allows to create Asterisk Attributes in defined Asterisk ObjectClasses
- without extensibleObject (which really should be the last resort); gives
- also additional possibilities for LDAP-filter
- ------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 1.6.0 to Asterisk 1.6.1 -------------
- ------------------------------------------------------------------------------
- Device State Handling
- ---------------------
- * The event infrastructure in Asterisk got another big update to help support
- distributed events. It currently supports distributed device state and
- distributed Voicemail MWI (Message Waiting Indication). A new module has
- been merged, res_ais, which facilitates communicating events between servers.
- It uses the SAForum AIS (Service Availability Forum Application Interface
- Specification) CLM (Cluster Management) and EVT (Event) services to maintain
- a cluster of Asterisk servers, and to share events between them. For more
- information on setting this up, refer to the Distributed Device State section
- of the Asterisk wiki at https://wiki.asterisk.org/wiki/x/jw4iAQ
- Dialplan Functions
- ------------------
- * Added a new dialplan function, AST_CONFIG(), which allows you to access
- variables from an Asterisk configuration file.
- * The JACK_HOOK function now has a c() option to supply a custom client name.
- * Added two new dialplan functions from libspeex for audio gain control and
- denoise, AGC() and DENOISE(). Both functions can be applied to the tx and
- rx directions of a channel from the dialplan.
- * The SMDI_MSG_RETRIEVE function now has the ability to search for SMDI messages
- based on other parameters. The default is still to search based on the
- forwarding station ID. However, there are new options that allow you to search
- based on the message desk terminal ID, or the message desk number.
- * TIMEOUT() has been modified to be accurate down to the millisecond.
- * ENUM*() functions now include the following new options:
- - 'u' returns the full URI and does not strip off the URI-scheme.
- - 's' triggers ISN specific rewriting
- - 'i' looks for branches into an Infrastructure ENUM tree
- - 'd' for a direct DNS lookup without any flipping of digits.
- * TXCIDNAME() has a new zone-suffix parameter (which defaults to 'e164.arpa')
- * CHANNEL() now has options for the maximum, minimum, and standard or normal
- deviation of jitter, rtt, and loss for a call using chan_sip.
- DAHDI channel driver (chan_dahdi) Changes
- ----------------------------------------
- * Channels can now be configured using named sections in chan_dahdi.conf, just
- like other channel drivers, including the use of templates.
- * The default for pridialplan has changed from 'national' to 'unknown'.
- PBX Changes
- -----------
- * It is now possible to specify a pattern match as a hint. Once a phone subscribes
- to something that matches the pattern a hint will be created using the contents
- and variables evaluated.
- * Dialplan matching has been extended to allow an extension to return to the
- PBX core to wait for more digits. This is done by using the new dialplan
- application called "Incomplete". This will permit a whole new level of
- extension control, by giving the administrator more control over early
- matches employing one of the short-circuit pattern match operators. Note
- that custom applications can trigger this same behavior by returning the
- special value AST_PBX_INCOMPLETE.
- Application Changes
- -------------------
- * Directory now permits both first and last names to be matched at the same
- time. In addition, the number of digits to enter of the name can be set in
- the arguments to Directory; previously, you could enter only 3, regardless
- of how many names are in your company. For large companies, this should be
- quite helpful.
- * Voicemail now permits a mailbox setting to wrap around from first to last
- messages, if the "messagewrap" option is set to a true value.
- * Voicemail now permits an external script to be run, for password validation.
- The script should output "VALID" or "INVALID" on stdout, depending upon the
- wish to validate or invalidate the password given. Arguments are:
- "mailbox" "context" "oldpass" "newpass". See the sample voicemail.conf for
- more details
- * Dial has a new option: F(context^extension^pri), which permits a callee to
- continue in the dialplan, at the specified label, if the caller hangs up.
- * ChanSpy and ExtenSpy have a new option, 's' which suppresses speaking the
- technology name (e.g. SIP, IAX, etc) of the channel being spied on.
- * The Jack application now has a c() option to supply a custom client name.
- * Chanspy has a new option, 'B', which can be used to "barge" on a call. This is
- like the pre-existing whisper mode, except that the spy can also talk to the
- participant on the bridged channel as well.
- * Chanspy has a new option, 'n', which will allow for the spied-on party's name
- to be spoken instead of the channel name or number. For more information on the
- use of this option, issue the command "core show application ChanSpy" from the
- Asterisk CLI.
- * Chanspy has a new option, 'd', which allows the spy to use DTMF to swap between
- spy modes. Use of this feature overrides the typical use of numeric DTMF. In other
- words, if using the 'd' option, it is not possible to enter a number to append to
- the first argument to Chanspy(). Pressing 4 will change to spy mode, pressing 5 will
- change to whisper mode, and pressing 6 will change to barge mode.
- * ExternalIVR now takes several options that affect the way it performs, as
- well as having several new commands. Please see the External IVR page on the Asterisk
- wiki for complete documentation: https://wiki.asterisk.org/wiki/x/oQBB
- * Added ability to communicate over a TCP socket instead of forking a child process for the
- ExternalIVR application.
- * ChanIsAvail has a new option, 'a', which will return all available channels instead
- of just the first one if you give the function more then one channel to check.
- * PrivacyManager now takes an option where you can specify a context where the
- given number will be matched. This way you have more control over who is allowed
- and it stops the people who blindly enter 10 digits.
- * ForkCDR has new options: 'a' updates the answer time on the new CDR; 'A' locks
- answer times, disposition, on orig CDR against updates; 'D' Copies the disposition
- from the orig CDR to the new CDR after reset; 'e' sets the 'end' time on the
- original CDR; 'R' prevents the new CDR from being reset; 's(var=val)' adds/changes
- the 'var' variable on the original CDR; 'T' forces ast_cdr_end(), ast_cdr_answer(),
- obey the LOCKED flag on cdr's in the chain, and also the ast_cdr_setvar() func.
- * The Dial() application no longer copies the language used by the caller to the callee's
- channel. If you desire for the caller's channel's language to be used for file playback
- to the callee, then the file specified may be prepended with "${CHANNEL(language)}/" .
- * SendImage() no longer hangs up the channel on error; instead, it sets the
- status variable SENDIMAGESTATUS to one of 'SUCCESS', 'FAILURE', or
- 'UNSUPPORTED'. This change makes SendImage() more consistent with other
- applications.
- * Park has a new option, 's', which silences the announcement of the parking space number.
- * A non-numeric, zero, or negative timeout specified to Dial() will now be interpreted as
- invalid input and will be assumed to mean that no timeout is desired.
- SIP Changes
- -----------
- * Added DNS manager support to registrations for peers referencing peer entries.
- DNS manager runs in the background which allows DNS lookups to be run asynchronously
- as well as periodically updating the IP address. These properties allow for
- better performance as well as recovery in the event of an IP change.
- * Performance improvements via using hash tables (astobj2) and doubly-linked lists to improve
- load/reload of large numbers of peers/users by ~40x (for large lists of peers).
- These changes also provide performance improvements for call setup and tear down.
- * Added ability to specify registration expiry time on a per registration basis in
- the register line.
- * Added support for T140 RED - redundancy in T.140 to prevent text loss due to
- lost packets.
- * Added t38pt_usertpsource option. See sip.conf.sample for details.
- * Added SIPnotify AMI command, for sending arbitrary SIP notify commands.
- * 'sip show peers' and 'sip show users' display their entries sorted in
- alphabetical order, as opposed to the order they were in, in the config
- file or database.
- * Videosupport now supports an additional option, "always", which always sets
- up video RTP ports, even on clients that don't support it. This helps with
- callfiles and certain transfers to ensure that if two video phones are
- connected, they will always share video feeds.
- IAX Changes
- -----------
- * Existing DNS manager lookups extended to check for SRV records.
- * IAX2 encryption support has been improved to support periodic key rotation
- within a call for enhanced security. The option "keyrotate" has been
- provided to disable this functionality to preserve backwards compatibility
- with older versions of IAX2 that do not support key rotation.
- CLI Changes
- -----------
- * New CLI command, "data get <path> [<search> [<filter>]]" which retrieves the
- data tree based on the given <path>.
- * New CLI command "data show providers" that will display all the registered
- callbacks.
- * New CLI command, "config reload <file.conf>" which reloads any module that
- references that particular configuration file. Also added "config list"
- which shows which configuration files are in use.
- * New CLI commands, "pri show version" and "ss7 show version" that will
- display which version of libpri and libss7 are being used, respectively.
- A new API call was added so trunk will now have to be compiled against
- a versions of libpri and libss7 that have them or it will not know that
- these libraries exist.
- * The commands "core show globals", "core set global" and "core set chanvar" has
- been deprecated in favor of the more semanticly correct "dialplan show globals",
- "dialplan set chanvar" and "dialplan set global".
- * New CLI command "dialplan show chanvar" to list all variables associated
- with a given channel.
- DNS manager changes
- -------------------
- * Addresses managed by DNS manager now can check to see if there is a DNS
- SRV record for a given domain and will use that hostname/port if present.
- AMI - The manager (TCP/TLS/HTTP)
- --------------------------------
- * The Status command now takes an optional list of variables to display
- along with channel status.
- * The QueueEntry event now also includes the channel's uniqueid
- ODBC Changes
- ------------
- * res_odbc no longer has a limit of 1023 total possible unshared connections,
- as some people were running into this limit. This limit has been increased
- to 4.2 billion.
- Queue changes
- -------------
- * The TRANSFER queue log entry now includes the the caller's original
- position in the transferred-from queue.
- * A new configuration option, "timeoutpriority" has been added. Please see the section labeled
- "QUEUE TIMING OPTIONS" in configs/queues.conf.sample for a detailed explanation of the option
- as well as an explanation about timeout options in general
- * Added a new option - C - for forcing the "answered elsewhere" flag on
- cancellation of calls in to members of the queue. This is to avoid the
- call to a member of a queue having the call listed as a "missed call".
- Realtime changes
- ----------------
- * Several (ODBC, Postgres, MySQL, SQLite) realtime drivers have been given
- adaptive capabilities. What this means in practical terms is that if your
- realtime table lacks critical fields, Asterisk will now emit warnings to
- that effect. Also, some of the realtime drivers have the ability (if
- configured) to automatically add those columns to the table with the
- correct type and length.
- Miscellaneous
- -------------
- * The channel variable ATTENDED_TRANSFER_COMPLETE_SOUND can now be set using
- the 'setvar' option to cause a given audio file to be played upon completion
- of an attended transfer. Currently it works for DAHDI, IAX2, SIP, and
- Skinny channels only.
- * You can now compile Asterisk against the Hoard Memory Allocator, see the
- Hoard page on the Asterisk wiki for more information:
- https://wiki.asterisk.org/wiki/x/pQBB
- * Config file variables may now be appended to, by using the '+=' append
- operator. This is most helpful when working with long SQL queries in
- func_odbc.conf, as the queries no longer need to be specified on a single
- line.
- * CDR config file, cdr.conf, has an added option, "initiatedseconds",
- which will add a second to the billsec when the ending
- time is set, if the number in the microseconds field of the end time is
- greater than the number of microseconds in the answer time. This allows
- users to count the 'initiated' seconds in their billing records.
- ------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 1.4.X to Asterisk 1.6.0 -------------
- ------------------------------------------------------------------------------
- AMI - The manager (TCP/TLS/HTTP)
- --------------------------------
- * Manager has undergone a lot of changes, all of them documented
- on the Asterisk wiki at https://wiki.asterisk.org/wiki/x/tQBB
- * Manager version has changed to 1.1
- * Added a new action 'CoreShowChannels' to list currently defined channels
- and some information about them.
- * Added a new action 'SIPshowregistry' to list SIP registrations.
- * Added TLS support for the manager interface and HTTP server
- * Added the URI redirect option for the built-in HTTP server
- * The output of CallerID in Manager events is now more consistent.
- CallerIDNum is used for number and CallerIDName for name.
- * Enable https support for builtin web server.
- See configs/http.conf.sample for details.
- * Added a new action, GetConfigJSON, which can return the contents of an
- Asterisk configuration file in JSON format. This is intended to help
- improve the performance of AJAX applications using the manager interface
- over HTTP.
- * SIP and IAX manager events now use "ChannelType" in all cases where we
- indicate channel driver. Previously, we used a mixture of "Channel"
- and "ChannelDriver" headers.
- * Added a "Bridge" action which allows you to bridge any two channels that
- are currently active on the system.
- * Added a "ListAllVoicemailUsers" action that allows you to get a list of all
- the voicemail users setup.
- * Added 'DBDel' and 'DBDelTree' manager commands.
- * cdr_manager now reports events via the "cdr" level, separating it from
- the very verbose "call" level.
- * Manager users are now stored in memory. If you change the manager account
- list (delete or add accounts) you need to reload manager.
- * Added Masquerade manager event for when a masquerade happens between
- two channels.
- * Added "manager reload" command for the CLI
- * Lots of commands that only provided information are now allowed under the
- Reporting privilege, instead of only under Call or System.
- * The IAX* commands now require either System or Reporting privilege, to
- mirror the privileges of the SIP* commands.
- * Added ability to retrieve list of categories in a config file.
- * Added ability to retrieve the content of a particular category.
- * Added ability to empty a context.
- * Created new action to create a new file.
- * Updated delete action to allow deletion by line number with respect to category.
- * Added new action insert to add new variable to category at specified line.
- * Updated action newcat to allow new category to be inserted in file above another
- existing category.
- * Added new event "JitterBufStats" in the IAX2 channel
- * Originate now requires the Originate privilege and, if you want to call out
- to a subshell, it requires the System privilege, as well. This was done to
- enhance manager security.
- * Originate now accepts codec settings with "Codecs: alaw, ulaw, h264"
- * New command: Atxfer. See https://wiki.asterisk.org/wiki/x/uABB for more details
- or manager show command Atxfer from the CLI
- * New command: IAXregistry. See https://wiki.asterisk.org/wiki/x/uABB for more
- details or manager show command IAXregistry from the CLI
- Dialplan functions
- ------------------
- * Added the DEVICE_STATE() dialplan function which allows retrieving any device
- state in the dialplan, as well as creating custom device states that are
- controllable from the dialplan.
- * Extend CALLERID() function with "pres" and "ton" parameters to
- fetch string representation of calling number presentation indicator
- and numeric representation of type of calling number value.
- * MailboxExists converted to dialplan function
- * A new option to Dial() for telling IP phones not to count the call
- as "missed" when dial times out and cancels.
- * Added LOCK(), TRYLOCK(), and UNLOCK(), which provide a single level dialplan
- mutex. No deadlocks are possible, as LOCK() only allows a single lock to be
- held for any given channel. Also, locks are automatically freed when a
- channel is hung up.
- * Added HINT() dialplan function that allows retrieving hint information.
- Hints are mappings between extensions and devices for the sake of
- determining the state of an extension. This function can retrieve the list
- of devices or the name associated with a hint.
- * Added EXTENSION_STATE() dialplan function which allows retrieving the state
- of any extension.
- * Added SYSINFO() dialplan function which allows retrieval of system information
- * Added a new dialplan function, DIALPLAN_EXISTS(), which allows you to check for
- the existence of a dialplan target.
- * Added two new dialplan functions, TOUPPER and TOLOWER, which convert a string to
- upper and lower case, respectively.
- * When bridging, Asterisk sets the BRIDGEPVTCALLID to the channel drivers unique
- ID for the call (not the Asterisk call ID or unique ID), provided that the
- channel driver supports this. For SIP, you get the SIP call-ID for the
- bridged channel which you can store in the CDR with a custom field.
- CLI Changes
- -----------
- * Added CLI permissions, config file: cli_permissions.conf
- default is to allow all commands for every local user/group.
- Also this new feature added three new CLI commands:
- - cli check permissions {<username>|@<groupname>|<username>@<groupname>} [<command>]
- - cli reload permissions
- - cli show permissions
- * New CLI command "core show hint" (usage: core show hint <exten>)
- * New CLI command "core show settings"
- * Added 'core show channels count' CLI command.
- * Added the ability to set the core debug and verbose values on a per-file basis.
- * Added 'queue pause member' and 'queue unpause member' CLI commands
- * Ability to set process limits ("ulimit") without restarting Asterisk
- * Enhanced "agi debug" to print the channel name as a prefix to the debug
- output to make debugging on busy systems much easier.
- * New CLI commands "dialplan set extenpatternmatching true/false"
- * New CLI command: "core set chanvar" to set a channel variable from the CLI.
- * Added an easy way to execute Asterisk CLI commands at startup. Any commands
- listed in the startup_commands section of cli.conf will get executed.
- * Added a CLI command, "devstate change", which allows you to set custom device
- states from the func_devstate module that provides the DEVICE_STATE() function
- and handling of the "Custom:" devices.
- * New CLI command: "sip show sched" which shows all ast_sched entries for sip,
- sorted into the different possible callbacks, with the number of entries
- currently scheduled for each. Gives you a feel for how busy the sip channel
- driver is.
- * Added 'skinny show lines verbose' CLI command. This will show the subs for every channel.
- * Cleanup another bunch of CLI commands. Now all modules follow the same schema.
- (Done by lmadsen, junky and mvanbaak during the devcon 2008)
- SIP changes
- -----------
- * Added a new 'faxdetect=yes|no' configuration option to sip.conf. When this
- option is enabled, Asterisk will watch for a CNG tone in the incoming audio
- for a received call. If it is detected, the channel will jump to the
- 'fax' extension in the dialplan.
- * The default SIP useragent= identifier now includes the Asterisk version
- * A new option, match_auth_username in sip.conf changes the matching of incoming requests.
- If set, and the incoming request carries authentication info,
- the username to match in the users list is taken from the Digest header
- rather than from the From: field. This feature is considered experimental.
- * The "musiconhold" and "musicclass" settings in sip.conf are now removed,
- since they where replaced by "mohsuggest" and "mohinterpret" in version 1.4
- * The "localmask" setting was removed in version 1.2 and the reminder about it
- being removed is now also removed.
- * A new option "busylevel" for setting a level of calls where asterisk reports
- a device as busy, to separate it from call-limit. This value is also added
- to the SIP_PEER dialplan function.
- * A new realtime family called "sipregs" is now supported to store SIP registration
- data. If this family is defined, "sippeers" will be used for configuration and
- "sipregs" for registrations. If it's not defined, "sippeers" will be used for
- registration data, as before.
- * The SIPPEER function have new options for port address, call and pickup groups
- * Added support for T.140 realtime text in SIP/RTP
- * The "checkmwi" option has been removed from sip.conf, as it is no longer
- required due to the restructuring of how MWI is handled. See the descriptions
- in this file of the "pollmailboxes" and "pollfreq" options to voicemail.conf
- for more information.
- * Added rtpdest option to CHANNEL() dialplan function.
- * Added SIPREFERRINGCONTEXT and SIPREFERREDBYHDR variables which are set when a transfer takes place.
- * SIP now adds a header to the CANCEL if the call was answered by another phone
- in the same dial command, or if the new c option in dial() is used.
- * The new default is that 100 Trying is not sent on REGISTER attempts as the RFC specifically
- states it is not needed. For phones, however, that do require it the "registertrying" option
- has been added so it can be enabled.
- * A new option called "callcounter" (global/peer/user level) enables call counters needed
- for better status reports needed for queues and SIP subscriptions. (Call-Limit was previously
- used to enable this functionality).
- * New settings for timer T1 and timer B on a global level or per device. This makes it
- possible to force timeout faster on non-responsive SIP servers. These settings are
- considered advanced, so don't use them unless you have a problem.
- * Added a dial string option to be able to set the To: header in an INVITE to any
- SIP uri.
- * Added a new global and per-peer option, qualifyfreq, which allows you to configure
- the qualify frequency.
- * Added SIP Session Timers support (RFC 4028). This prevents stuck SIP sessions that
- were not properly torn down due to network or endpoint failures during an established
- SIP session.
- * Added experimental TCP and TLS support for SIP. See https://wiki.asterisk.org/wiki/x/ygBB
- and configs/sip.conf.sample for more information on how it is used.
- * Added a new configuration option "authfailureevents" that enables manager events when
- a peer can't authenticate properly.
- * Added DNS manager support to registrations for peers not referencing a peer entry.
- IAX2 changes
- ------------
- * Added the trunkmaxsize configuration option to chan_iax2.
- * Added the srvlookup option to iax.conf
- * Added support for OSP. The token is set and retrieved through the CHANNEL()
- dialplan function.
- XMPP Google Talk/Jingle changes
- -------------------------------
- * Added the bindaddr option to gtalk.conf.
- Skinny changes
- -------------
- * Added skinny show device, skinny show line, and skinny show settings CLI commands.
- * Proper codec support in chan_skinny.
- * Added settings for IP and Ethernet QoS requests
- MGCP changes
- ------------
- * Added separate settings for media QoS in mgcp.conf
- Console Channel Driver changes
- ------------------------------
- * Added experimental support for video send & receive to chan_oss.
- This requires SDL and ffmpeg/avcodec, plus Video4Linux or X11 to act as
- a video source.
- Phone channel changes (chan_phone)
- ----------------------------------
- * Added G729 passthrough support to chan_phone for Sigma Designs boards.
- H.323 channel Changes
- ---------------------
- * H323 remote hold notification support added (by NOTIFY message
- and/or H.450 supplementary service)
- Local channel changes
- ---------------------
- * The device state functionality in the Local channel driver has been updated
- to indicate INUSE or NOT_INUSE when a Local channel is being used as opposed
- to just UNKNOWN if the extension exists.
- * Added jitterbuffer support for chan_local. This allows you to use the
- generic jitterbuffer on incoming calls going to Asterisk applications.
- For example, this would allow you to use a jitterbuffer for an incoming
- SIP call to Voicemail by putting a Local channel in the middle. This
- feature is enabled by using the 'j' option in the Dial string to the Local
- channel in conjunction with the existing 'n' option for local channels.
- * A 'b' option has been added which causes chan_local to return the actual channel
- that is behind it when queried. This is useful for transfer scenarios as the
- actual channel will be transferred, not the Local channel.
- Agent channel changes
- ----------------------
- * The ackcall and endcall options are now supplemented with options acceptdtmf
- and enddtmf. These allow for the DTMF keypress to be configurable. The options
- default to their old hard-coded values ('#' and '*' respectively) so this should
- not break any existing agent installations.
- DAHDI channel driver (chan_dahdi) Changes
- ----------------------------------------
- * SS7 support (via libss7 library)
- * In India, some carriers transmit CID via dtmf. Some code has been added
- that will handle some situations. The cidstart=polarity_IN choice has been added for
- those carriers that transmit CID via dtmf after a polarity change.
- * CID matching information is now shown when doing 'dialplan show'.
- * Added dahdi show version CLI command.
- * Added setvar support to chan_dahdi.conf channel entries.
- * Added two new options: mwimonitor and mwimonitornotify. These options allow
- you to enable MWI monitoring on FXO lines. When the MWI state changes,
- the script specified in the mwimonitornotify option is executed. An internal
- event indicating the new state of the mailbox is also generated, so that
- the normal MWI facilities in Asterisk work as usual.
- * Added signalling type 'auto', which attempts to use the same signalling type
- for a channel as configured in DAHDI. This is primarily designed for analog
- ports, but will also work for digital ports that are configured for FXS or FXO
- signalling types. This mode is also the default now, so if your chan_dahdi.conf
- does not specify signalling for a channel (which is unlikely as the sample
- configuration file has always recommended specifying it for every channel) then
- the 'auto' mode will be used for that channel if possible.
- * Added a 'dahdi set dnd' command to allow CLI control of the Do-Not-Disturb
- state for a channel; also ensured that the DNDState Manager event is
- emitted no matter how the DND state is set or cleared.
- New Channel Drivers
- -------------------
- * Added a new channel driver, chan_unistim. See the Asterisk wiki at
- https://wiki.asterisk.org/wiki/x/vgsiAQ and configs/unistim.conf.sample
- for details. This new channel driver allows you to use Nortel i2002,
- i2004, and i2050 phones with Asterisk.
- * Added a new channel driver, chan_console, which uses portaudio as a cross
- platform audio interface. It was written as a channel driver that would
- work with Mac CoreAudio, but portaudio supports a number of other audio
- interfaces, as well. Note that this channel driver requires v19 or higher
- of portaudio; older versions have a different API.
- DUNDi changes
- -------------
- * Added the ability to specify arguments to the Dial application when using
- the DUNDi switch in the dialplan.
- * Added the ability to set weights for responses dynamically. This can be
- done using a global variable or a dialplan function. Using the SHELL()
- function would allow you to have an external script set the weight for
- each response.
- * Added two new dialplan functions, DUNDIQUERY and DUNDIRESULT. These
- functions will allow you to initiate a DUNDi query from the dialplan,
- find out how many results there are, and access each one.
- * Added the ability to specifiy a port for a dundi peer.
- ENUM changes
- ------------
- * Added two new dialplan functions, ENUMQUERY and ENUMRESULT. These
- functions will allow you to initiate an ENUM lookup from the dialplan,
- and Asterisk will cache the results. ENUMRESULT can be used to access
- the results without doing multiple DNS queries.
- Voicemail Changes
- -----------------
- * Added the ability to customize which sound files are used for some of the
- prompts within the Voicemail application by changing them in voicemail.conf
- * Added the ability for the "voicemail show users" CLI command to show users
- configured by the dynamic realtime configuration method.
- * MWI (Message Waiting Indication) handling has been significantly
- restructured internally to Asterisk. It is now totally event based
- instead of polling based. The voicemail application will notify other
- modules that have subscribed to MWI events when something in the mailbox
- changes.
- This also means that if any other entity outside of Asterisk is changing
- the contents of mailboxes, then the voicemail application still needs to
- poll for changes. Examples of situations that would require this option
- are web interfaces to voicemail or an email client in the case of using
- IMAP storage. So, two new options have been added to voicemail.conf
- to account for this: "pollmailboxes" and "pollfreq". See the sample
- configuration file for details.
- * Added "tw" language support
- * Added support for storage of greetings using an IMAP server
- * Added ability to customize forward, reverse, stop, and pause keys for message playback
- * SMDI is now enabled in voicemail using the smdienable option.
- * A "lockmode" option has been added to asterisk.conf to configure the file
- locking method used for voicemail, and potentially other things in the
- future. The default is the old behavior, lockfile. However, there is a
- new method, "flock", that uses a different method for situations where the
- lockfile will not work, such as on SMB/CIFS mounts.
- * Added the ability to backup deleted messages, to ease recovery in the case
- that a user accidentally deletes a message, and discovers that they need it.
- * Reworked the SMDI interface in Asterisk. The new way to access SMDI information
- is through the new functions, SMDI_MSG_RETRIEVE() and SMDI_MSG(). The file
- smdi.conf can now be configured with options to map SMDI station IDs to Asterisk
- voicemail boxes. The SMDI interface can also poll for MWI changes when some
- outside entity is modifying the state of the mailbox (such as IMAP storage or
- a web interface of some kind).
- * Added the support for marking messages as "urgent." There are two methods to accomplish
- this. One is to pass the 'U' option to VoiceMail(). Another way to mark a message as urgent
- is to specify "review=yes" in voicemail.conf. Doing this will cause allow the user to mark
- the message as urgent after he has recorded a voicemail by following the voice instructions.
- When listening to voicemails using VoiceMailMain urgent messages will be presented before other
- messages
- Queue changes
- -------------
- * Added the general option 'shared_lastcall' so that member's wrapuptime may be
- used across multiple queues.
- * Added QUEUE_VARIABLES function to set queue variables added setqueuevar and
- setqueueentryvar options for each queue, see queues.conf.sample for details.
- * Added keepstats option to queues.conf which will keep queue
- statistics during a reload.
- * setinterfacevar option in queues.conf also now sets a variable
- called MEMBERNAME which contains the member's name.
- * Added 'Strategy' field to manager event QueueParams which represents
- the queue strategy in use.
- * Added option to run macro when a queue member is connected to a caller,
- see queues.conf.sample for details.
- * app_queue now has a 'loose' option which is almost exactly like 'strict' except it
- does not count paused queue members as unavailable.
- * Added min-announce-frequency option to queues.conf which allows you to control the
- minimum amount of time between queue announcements for use when the caller's queue
- position changes frequently.
- * Added additional information to EXITWITHTIMEOUT and EXITWITHKEY events in the
- queue log.
- * Added ability for non-realtime queues to have realtime members
- * Added the "linear" strategy to queues.
- * Added the "wrandom" strategy to queues.
- * Added new channel variable QUEUE_MIN_PENALTY
- * QUEUE_MAX_PENALTY and QUEUE_MIN_PENALTY may be adjusted in mid-call by defining
- rules in queuerules.conf. See configs/queuerules.conf.sample for details
- * Added a new parameter for member definition, called state_interface. This may be
- used so that a member may be called via one interface but have a different interface's
- device state reported.
- * Added new CLI and Manager commands relating to reloading queues. From the CLI, see
- "queue reload", "queue reset stats". Also see "manager show command QueueReload" and
- "manager show command QueueReset."
- * New configuration option: randomperiodicannounce. If a list of periodic announcements is
- specified by the periodic-announce option, then one will be chosen randomly when it is time
- to play a periodic announcment
- * New configuration options: announce-position now takes two more values in addition to "yes" and
- "no." Two new options, "limit" and "more," are allowed. These are tied to another option,
- announce-position-limit. By setting announce-position to "limit" callers will only have their
- position announced if their position is less than what is specified by announce-position-limit.
- If announce-position is set to "more" then callers beyond the position specified by announce-position-limit
- will be told that their are more than announce-position-limit callers waiting.
- * Two new queue log events have been added. An ADDMEMBER event will be logged
- when a realtime queue member is added and a REMOVEMEMBER event will be logged
- when a realtime queue member is removed. Since there is no calling channel associated
- with these events, the string "REALTIME" is placed where the channel's unique id
- is typically placed.
- * The configuration method for the "joinempty" and "leavewhenempty" options has
- changed to a comma-separated list of methods of determining member availability
- instead of vague terms such as "yes," "loose," "no," and "strict." These old four
- values are still accepted for backwards-compatibility, though.
- * The average talktime is now calculated on queues. This information is reported via the
- CLI commands "queue show" and "queues show"; through the AMI events AgentComplete, QueueSummary,
- and QueueParams; and through the channelvariable QUEUETALKTIME if setinterfacevar=yes is set for
- the queue.
- MeetMe Changes
- --------------
- * The 'o' option to provide an optimization has been removed and its functionality
- has been enabled by default.
- * When a conference is created, the UNIQUEID of the channel that caused it to be
- created is stored. Then, every channel that joins the conference will have the
- MEETMEUNIQUEID channel variable set with this ID. This can be used to relate
- callers that come and go from long standing conferences.
- * Added a new application, MeetMeChannelAdmin, which is similar to MeetMeAdmin,
- except it does operations on a channel by name, instead of number in a conference.
- This is a very useful feature in combination with the 'X' option to ChanSpy.
- * Added 'C' option to Meetme which causes a caller to continue in the dialplan
- when kicked out.
- * Added new RealTime functionality to provide support for scheduled conferencing.
- This includes optional messages to the caller if they attempt to join before
- the schedule start time, or to allow the caller to join the conference early.
- Also included is optional support for limiting the number of callers per
- RealTime conference.
- * Added the S() and L() options to the MeetMe application. These are pretty
- much identical to the S() and L() options to Dial(). They let you set
- timeouts for the conference, as well as have warning sounds played to
- let the caller know how much time is left, and when it is running out.
- * Added the ability to do "meetme concise" with the "meetme" CLI command.
- This extends the concise capabilities of this CLI command to include
- listing all conferences, instead of an addition to the other sub commands
- for the "meetme" command.
- * Added the ability to specify the music on hold class used to play into the
- conference when there is only one member and the M option is used.
- * Added MEETME_INFO dialplan function which provides a way to query
- various properties of a Meetme conference.
- * Added new admin features: *81: Roll call, *82: eject all, *83: mute all,
- and *84: record in-conf
- Other Dialplan Application Changes
- ----------------------------------
- * Argument support for Gosub application
- * From the to-do lists: straighten out the app timeout args:
- Wait() app now really does 0.3 seconds- was truncating arg to an int.
- WaitExten() same as Wait().
- Congestion() - Now takes floating pt. argument.
- Busy() - now takes floating pt. argument.
- Read() - timeout now can be floating pt.
- WaitForRing() now takes floating pt timeout arg.
- SpeechBackground() -- clarified in the docstrings that the timeout is an integer seconds.
- * Added 's' option to Page application.
- * Added an optional timeout argument to the Page application.
- * Added 'E', 'V', and 'P' commands to ExternalIVR.
- * Added 'o' and 'X' options to Chanspy.
- * Added a new dialplan application, Bridge, which allows you to bridge the
- calling channel to any other active channel on the system.
- * Added the ability to specify a music on hold class to play instead of ringing
- for the SLATrunk application.
- * The Read application no longer exits the dialplan on error. Instead, it sets
- READSTATUS to ERROR, which you can catch and handle separately.
- * Added 'm' option to Directory, which lists out names, 8 at a time, instead
- of asking for verification of each name, one at a time.
- * Privacy() no longer uses privacy.conf, as all options are specifyable as
- direct options to the app.
- * AMD() has a new "maximum word length" option. "show application AMD" from the CLI
- for more details
- * GotoIfTime() now may branch based on a "false" condition, like other Goto-related applications
- * The ChannelRedirect application no longer exits the dialplan if the given channel
- does not exist. It will now set the CHANNELREDIRECT_STATUS variable to SUCCESS upon success
- or NOCHANNEL if the given channel was not found.
- * The silencethreshold setting that was previously configurable in multiple
- applications is now settable globally via dsp.conf.
- Music On Hold Changes
- ---------------------
- * A new option, "digit", has been added for music on hold classes in
- musiconhold.conf. If this is set for a music on hold class, a caller
- listening to music on hold can press this digit to switch to listening
- to this music on hold class.
- * Support for realtime music on hold has been added.
- * In conjunction with the realtime music on hold, a general section has
- been added to musiconhold.conf, its sole variable is cachertclasses. If this
- is set, then music on hold classes found in realtime will be cached in memory.
- AEL Changes
- -----------
- * AEL upgraded to use the Gosub with Arguments instead
- of Macro application, to hopefully reduce the problems
- seen with the artificially low stack ceiling that
- Macro bumps into. Macros can only call other Macros
- to a depth of 7. Tests run using gosub, show depths
- limited only by virtual memory. A small test demonstrated
- recursive call depths of 100,000 without problems.
- -- in addition to this, all apps that allowed a macro
- to be called, as in Dial, queues, etc, are now allowing
- a gosub call in similar fashion.
- * AEL now generates LOCAL(argname) declarations when it
- Set()'s the each arg name to the value of ${ARG1}, ${ARG2),
- etc. That makes the arguments local in scope. The user
- can define their own local variables in macros, now,
- by saying "local myvar=someval;" or using Set() in this
- fashion: Set(LOCAL(myvar)=someval); ("local" is now
- an AEL keyword).
- * utils/conf2ael introduced. Will convert an extensions.conf
- file into extensions.ael. Very crude and unfinished, but
- will be improved as time goes by. Should be useful for a
- first pass at conversion.
- * aelparse will now read extensions.conf to see if a referenced
- macro or context is there before issueing a warning.
- * AEL parser sets a local channel variable ~~EXTEN~~, to
- preserve the value of ${EXTEN} thru switch statements.
- * New operator in $[...] expressions: the ~~ operator serves
- as a concatenation operator. AT THE MOMENT, it is really only
- necessary and useful in AEL, especially in if() expressions.
- Operation: ${a} ~~ ${b| with force both a and b to strings, strip
- any enclosing double-quotes, and evaluate to the value of a
- concatenated with the value of b. For example if a is set to
- "xyz" and b has the value "abc", then ${a} ~~ ${b| would
- evaluate to xyzabc .
- Call Features (res_features) Changes
- ------------------------------------
- * Added the parkedcalltransfers option to features.conf
- * Added parkedcallparking option to control one touch parking w/ parking
- pickup
- * Added parkedcallhangup option to control disconnect feature w/ parking
- pickup
- * Added parkedcallrecording option to control one-touch record w/ parking
- pickup
- * Added parkedcallparking, parkedcallhangup, parkedcallrecording, and
- parkedcalltransfers option support for multiple parking lots.
- * Added BRIDGE_FEATURES variable to set available features for a channel
- * The built-in method for doing attended transfers has been updated to
- include some new options that allow you to have the transferee sent
- back to the person that did the transfer if the transfer is not successful.
- See the options "atxferdropcall", "atxferloopdelay", and "atxfercallbackretries"
- in features.conf.sample.
- * Added support for configuring named groups of custom call features in
- features.conf. This means that features can be written a single time, and
- then mapped into groups of features for different key mappings or easier
- access control.
- * Updated the ParkedCall application to allow you to not specify a parking
- extension. If you don't specify a parking space to pick up, it will grab
- the first one available.
- * Added cli command 'features reload' to reload call features from features.conf
- * Moved into core asterisk binary.
- * Changed the default setting for featuredigittimeout to 2000 ms from 500 ms.
- * Added the ability for custom parking lots to be configured with their own
- parking extension with the parkext option.
- Language Support Changes
- ------------------------
- * Brazilian Portuguese (pt-BR) in VM, and say.c was added
- * Added support for the Hungarian language for saying numbers, dates, and times.
- AGI Changes
- -----------
- * Added SPEECH commands for speech recognition. A complete listing can be found
- using agi show.
- * If app_stack is loaded, GOSUB is a native AGI command that may be used to
- invoke subroutines in the dialplan. Note that calling EXEC with Gosub
- does not behave as expected; the native command needs to be used, instead.
- * Added the ability to perform SRV lookups on fast AGI calls. To use this
- feature, simply use hagi: instead of agi: as the protocol portion
- of the URI parameter to the AGI function call in your dial plan. Also note
- that specifying a port number in the AGI URI will disable SRV lookups,
- even if you use the hagi: protocol.
- * No longer support MSG_OOB flag on HANGUP.
- Logger changes
- --------------
- * Added rotatestrategy option to logger.conf, along with two new options:
- "timestamp" which will use the time to name the logger files instead of
- sequence number; and "rotate", which rotates the names of the log files,
- similar to the way syslog rotates files.
- * Added exec_after_rotate option to logger.conf, which allows a system
- command to be run after rotation. This is primarily useful with
- rotatestrategy=rotate, to allow a limit on the number of log files kept
- and to ensure that the oldest log file gets deleted.
- * Added realtime support for the queue log
- Call Detail Records
- -------------------
- * The cdr_manager module has a [mappings] feature, like cdr_custom,
- to add fields to the manager event from the CDR variables.
- * Added cdr_adaptive_odbc, a new module that adapts to the structure of your
- backend database CDR table. Specifically, additional, non-standard
- columns are supported, merely by setting the corresponding CDR variable in
- your dialplan. In addition, you may alias any column to another name (for
- example, if you want the 'src' CDR variable to be column 'ANI' in the DB,
- simply "alias src => ANI" in the configuration file). Records may be
- posted to more than one backend, simply by specifying multiple categories
- in the configuration file. And finally, you may filter which CDRs get
- posted to each backend, by specifying a filter (which the record must
- match) for the particular category. Filters are additive (meaning all
- rules must match to post that CDR).
- * The Postgres CDR module now supports some features of the cdr_adaptive_odbc
- module. Specifically, you may add additional columns into the table and
- they will be set, if you set the corresponding CDR variable name. Also,
- if you omit columns in your database table, they will be silently skipped
- (but a record will still be inserted, based on what columns remain). Note
- that the other two features from cdr_adaptive_odbc (alias and filter) are
- not currently supported.
- * The ResetCDR application now has an 'e' option that re-enables a CDR if it
- has been disabled using the NoCDR application.
- Miscellaneous New Modules
- -------------------------
- * Added a new CDR module, cdr_sqlite3_custom.
- * Added a new realtime configuration module, res_config_sqlite
- * Added a new codec translation module, codec_resample, which re-samples
- signed linear audio between 8 kHz and 16 kHz to help support wideband
- codecs.
- * Added a new module, res_phoneprov, which allows auto-provisioning of phones
- based on configuration templates that use Asterisk dialplan function and
- variable substitution. It should be possible to create phone profiles and
- templates that work for the majority of phones provisioned over http. It
- is currently only intended to provision a single user account per phone.
- An example profile and set of templates for Polycom phones is provided.
- NOTE: Polycom firmware is not included, but should be placed in
- AST_DATA_DIR/phoneprov/configs to match up with the included templates.
- * Added a new module, app_jack, which provides interfaces to JACK, the Jack
- Audio Connection Kit (http://www.jackaudio.org/). Two interfaces are
- provided; there is a JACK() application, and a JACK_HOOK() function. Both
- interfaces create an input and output JACK port. The application makes
- these ports the endpoint of the call. The audio coming from the channel
- goes out the output port and whatever comes back in on the input port is
- what gets sent to the channel. The JACK_HOOK() function turns on a JACK
- audiohook on the channel. This lets you run the audio coming from a
- channel through JACK, and whatever comes back in is what gets forwarded
- on as the channel's audio. This is very useful for building custom
- vocoders or doing recording or analysis of the channel's audio in another
- application.
- * Added a new module, res_config_curl, which permits using a HTTP POST url
- to retrieve, create, update, and delete realtime information from a remote
- web server. Note that this module requires func_curl.so to be loaded for
- backend functionality.
- * Added a new module, res_config_ldap, which permits the use of an LDAP
- server for realtime data access.
- * Added support for writing and running your dialplan in lua using the pbx_lua
- module. See configs/extensions.lua.sample for examples of how to do this.
- Miscellaneous
- -------------
- * Ability to use libcap to set high ToS bits when non-root
- on Linux. If configure is unable to find libcap then you
- can use --with-cap to specify the path.
- * Added maxfiles option to options section of asterisk.conf which allows you to specify
- what Asterisk should set as the maximum number of open files when it loads.
- * Added the jittertargetextra configuration option.
- * Added support for setting the CoS for VLAN traffic (802.1p). See the sample
- configuration files for the IP channel drivers. The new option is "cos".
- This information is also documented on the Asterisk wiki at
- https://wiki.asterisk.org/wiki/x/EYBG
- * When originating a call using AMI or pbx_spool that fails the reason for failure
- will now be available in the failed extension using the REASON dialplan variable.
- * Added support for reading the TOUCH_MONITOR_PREFIX channel variable.
- It allows you to configure a prefix for auto-monitor recordings.
- * A new extension pattern matching algorithm, based on a trie, is introduced
- here, that could noticeably speed up mid-sized to large dialplans.
- It is NOT used by default, as duplicating the behaviour of the old pattern
- matcher is still under development. A config file option, in extensions.conf,
- in the [general] section, called "extenpatternmatchingnew", is by default
- set to false; setting that to true will force the use of the new algorithm.
- Also, the cli commands "dialplan set extenpatternmatchingnew true/false" can
- be used to switch the algorithms at run time.
- * A new option when starting a remote asterisk (rasterisk, asterisk -r) for
- specifying which socket to use to connect to the running Asterisk daemon
- (-s)
- * Performance enhancements to the sched facility, which is used in
- the channel drivers, etc. Added hashtabs and doubly-linked lists
- to speed up deletion; start at the beginning or end of list to
- speed up insertion.
- * Added Doubly-linked lists after the fashion of linkedlists.h. They are in
- dlinkedlists.h. Doubly-linked lists feature fast deletion times.
- Added regression tests to the tests/ dir, also.
- * Added a refcount trace feature to astobj2 for those trying to balance
- object creation, deletion; work, play; space and time. See the
- notes in astobj2.h. Also, see utils/refcounter as well, as a
- quick way to find unbalanced refcounts in what could be a sea
- of objects that were balanced.
- * Added logging to 'make update' command. See update.log
- * Added strictrtp option to rtp.conf. If enabled this will drop RTP packets that
- do not come from the remote party.
- * Added the 'n' option to the SpeechBackground application to tell it to not
- answer the channel if it has not already been answered.
- * Added a compiler flag, CHANNEL_TRACE, which permits channel tracing to be
- turned on, via the CHANNEL(trace) dialplan function. Could be useful for
- dialplan debugging.
- * iLBC source code no longer included (see UPGRADE.txt for details)
- * If compiled with DETECT_DEADLOCKS enabled and if you have glibc, then if
- deadlock is detected, a backtrace of the stack which led to the lock calls
- will be output to the CLI.
- * If compiled with DEBUG_THREADS enabled and if you have glibc, then issuing
- the "core show locks" CLI command will give lock information output as well
- as a backtrace of the stack which led to the lock calls.
- * users.conf now sports an optional alternateexts property, which permits
- allocation of additional extensions which will reach the specified user.
- * A new option for the configure script, --enable-internal-poll, has been added
- for use with systems which may have a buggy implementation of the poll system
- call. If you notice odd behavior such as the CLI being unresponsive on remote
- consoles, you may want to try using this option. This option is enabled by default
- on Darwin systems since it is known that the Darwin poll() implementation has
- odd issues.
- Timer Changes
- --------------------
- * In addition to timing from DAHDI, there is a new timing module called
- res_timing_timerfd. In order to use this, you must be running Linux with
- a kernel version 2.6.25 or newer as well as glibc 2.8 or newer. The configure
- script will be able to tell if you have the requirements. From menuselect, select
- res_timing_timerfd from the Resource Modules menu.
|