با سلام و احترام
خوب بود کد خود را نیز می گذاشتید اما کلی عرض می کند.
شما در کانتکس فعلی یک سری متغییر تعریف کرده اید و می خواهید درصرت تغییر کانتکس این متغییر ها نیز متقل شوند.
باید گفت به صورت پیش فرض متغییر های محیطی که شما با دستور Set تعریف می کنید فقط در آن کانتکس دیده می شوند.
اما اگر می خواهید متغییر ساخته شما منتقل شود باید متغییر را به صورت زیر بسازید.
قرار دادن یک _ قبل از نان منتغییر باعث می شود آن متغییر در کانتکست context بعدی نیز دیده شود.
قرار دادن دو _ قبل نام متغییر باعث می شود این متغییر در تمامی کانتکست های بعدی دیده شود.
[context-voipiran]
exten => 2001,1,set(var1=123)
exten => 2001,1,set(_var2=1234)
exten => 2001,1,set(__var3=12345)
exten => 2001,n,Goto(context-B,s,1)
[context-B]
exten => s,1,Verbose(${var2})
exten => s,n,Goto(context-C,s,1)
[context-C]
exten => s,1,Verbose(${var3})
exten => s,n,Goto(context-C,s,1)
در مثلا بالا var2 در کانتکس دوم و var3 در هر دو کانتکس بعدی قابل استفاده است.